我在這個網頁上了解到,foreach是快速的,對數據庫的查詢不是。所以我試圖做一個UPDATE查詢,但它不工作:我試圖不要讓與foreach犯同樣的錯誤,但現實不會讓我(拉霍伊風格)
$array = '';
foreach ($myar as $key => $value) {
$array .= " (name='$value' WHERE lid='$key'), ";
}
$link1 = $db->prepare("UPDATE leyes SET $array");
$link1->execute();
我得到一個錯誤:致命錯誤:未捕獲的異常「PDOException」有消息「SQLSTATE [42000]:語法錯誤或訪問衝突:1064您在您的SQL語法錯誤
一個解決方案:
$array = '';
foreach ($myarr as $key => $value) {
$array .= " WHEN '$key' THEN '$value' ";
}
$array .= " ELSE name
END";
$link1 = $db->prepare("UPDATE table SET name = CASE id $array");
$link1->execute();
如果你使用準備好的語句*它不工作*是沒有問題的一個非常有用的描述... – Quasdunk
,實際上__use__準備的語句,而不是建立一個SQL語句字符串 –
這似乎不是正確的語法。你可以在UPDATE語句中只有一個WHERE子句:http://dev.mysql.com/doc/refman/5.0/en/update.html – Quasdunk