我有一個用戶窗體設置單個記錄「當前」。一次只能將一條記錄設置爲最新。因此,我向用戶展示一個下拉列表,他們選擇他們想要設置當前的項目,並在窗體底部點擊「更新」。如何在執行查詢後使用mysqli/php更新所有記錄?
的PHP/mysqli的需要去和所有記錄欄「當前」設置爲0的值,然後更新表單中的一個「1」的值。
起初,我只是做了簡單的計算行數,並運行了一堆查詢到列更新爲0或1,如果循環計數器=該行的ID。那麼......當我開始在其他部分進行測試並且索引數字高於行總數時,這種情況很快就破裂了。是的,愚蠢的做法,最初!
這就是我試圖與PHP/MySQL代碼:
// $link is the database link defined elsewhere. This does work as I use it all over the place
$setCurrent = X; // This is the number passed from my form
$init_query = "SELECT id, current FROM myTable";
if ($stmt = $link->$prepare($init_query) {
$stmt->execute() or die ($stmt->error);
$stmt ->bind_result($id, $current)
while ($stmt->fetch()){
if ($id == $setCurrent){
$update_sql = "UPDATE myTable SET current ='1' WHERE id='".$setCurrent."'";
$stmt2 = $link->prepare($update_sql);
$stmt2->execute;
}
else {
$update_sql = "UPDATE myTable SET current ='0' WHERE id='".$id."'";
$stmt2 = $link->prepare($update_sql);
$stmt2->execute;
}
$stmt->close();
這種失敗,給了我一個致命錯誤:未捕獲的錯誤:調用一個成員函數執行布爾在.....
我傷透我的大腦在這個並不能弄清楚到底是怎麼回事。自從我在PHP/MySql中工作了幾年後,這是我第一次寫入OO Mysqli。請溫柔:)
可以方便您的腳本無法提線。哪個查詢給出錯誤? –
這可能是prepare()中額外的$? –
我調換了來自不同系統的代碼。該語法適用於開發系統。額外的$和curleys只是胖胖的指法。 – user3723090