gpt4 book ai didi

PHP/MySQL : mysqli prepared statement insert same value multiple times within for loop

转载 作者:行者123 更新时间:2023-11-29 12:56:13 25 4
gpt4 key购买 nike

我正在使用准备好的语句通过 for 循环将多行插入到表中。我需要的是将相同的值($id)插入到“id”列的所有行中。同样,时间戳应该插入到所有迭代的“已提交”列中。

我当前的代码仅插入一列。这是代码:

 if($stmt = $link->prepare("INSERT INTO table (id, alt_ord, alt_id, rank, submitted) VALUES ($id,?,?,?, NOW())")){
$stmt->bind_param('iii', $q_ord, $q_ID, $rating);

for($i=0; $i < count($_POST['alt_ord']); $i++){
$q_ord = $_POST['alt_ord'][$i];
$q_ID = $_POST['alt_id'][$i];
$rating = $_POST['rank_'][$i];
$stmt->execute();
}
$stmt->close();
}

INSERT 语句中使用 ? 与 $idNOW() 的组合显然是不正确的。如何按预期重复插入中的 ID 和时间戳值?

最佳答案

假设 $id 是一个未知值(来自用户输入等),只需将其与其他值绑定(bind)在一起,并且不要忘记检查错误

// make mysqli trigger useful errors (exceptions)
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$stmt = $link->prepare('INSERT INTO table (id, alt_ord, alt_id, rank, submitted) VALUES (?, ?, ?, ?, NOW())');
$stmt->bind_param('iiii', $id, $q_ord, $q_ID, $rating);

for ($i = 0; $i < count($_POST['alt_ord']); $i++) {
$q_ord = $_POST['alt_ord'][$i];
$q_ID = $_POST['alt_id'][$i];
$rating = $_POST['rank_'][$i]; // you sure about this one? "rank_"?

$stmt->execute();
}

关于PHP/MySQL : mysqli prepared statement insert same value multiple times within for loop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24028923/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com