作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
因此,我从MySQL表中列出了许多行,并且您可以通过单击“ sumokejo”列中的按钮更新编号来选择每行旁边的复选框。它工作正常,但仅适用于第一行,它应更改所有选定的行,但无论选择哪种顺序,它都仅适用于第一行。
$pasirinko = implode(',', $_POST['checkbox']);
$susimokejo= 0;
$sumokejo1 = $conn->prepare("UPDATE mokiniai SET sumokejo=? WHERE id IN(?)");
if ($sumokejo1 === false) {
trigger_error($this->mysqli->error, E_USER_ERROR);
}
$sumokejo1->bind_param("is", $susimokejo, $pasirinko);
if ($sumokejo1->execute()) {
echo $pasirinko;
//echo '<meta http-equiv="refresh" content="0">';
?>
<?php
}
else {
echo 'something is not right';
}
echo $pasirinko
仅用于测试,它可以正确显示一串选定行的ID,例如:18、16、19。所以我想剩下的只有
IN()
函数。
最佳答案
对于任何想知道我已经通过使用for循环而不是IN()来解决此问题的人
看起来像这样:
$pasirinko = $_POST['checkbox']; // my array of IDs
$susimokejo= 0;
$sumokejo = $conn->prepare("UPDATE mokiniai SET sumokejo=? WHERE id = ?");
for ($i = 0; $i<count($pasirinko); $i++) {
$sumokejo->bind_param("is", $susimokejo, $pasirinko[$i]);
$sumokejo->execute();
}
echo '<meta http-equiv="refresh" content="0">';
$sumokejo->close();
关于php - 使用IN()函数的mysql UPDATE不适用于准备好的语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43880616/
我是一名优秀的程序员,十分优秀!