[英]mysql UPDATE with IN() function doesn't work with prepared statement
因此,我從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()
函數。 我將xampp與MariaDB一起使用可能是個問題嗎? 我應該安裝純MySQL嗎?
謝謝你的幫助!
對於任何想知道我已經通過使用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();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.