簡體   English   中英

使用IN()函數的mysql UPDATE不適用於准備好的語句

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM