// $ update行正常,但是准备好的语句会抛出此错误:
致命错误:带有消息的未捕获异常'mysqli_sql_exception' '你的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 'WHERE weekday =?'附近在第5行
for($i = 0; $i < $count; $i++){ //update all time fields
// $update = $mysqli->query("UPDATE storehours SET open='$open[$i]', open_2='$open_2[$i]', close='$close[$i]', close_2='$close_2[$i]' WHERE weekday ='$weekday[$i]'");
mysqli_report(MYSQLI_REPORT_ALL);
$stmt = $mysqli->prepare("UPDATE maxfoo SET open = ?,
open_2 = ?,
close = ?,
close_2 = ?,
WHERE weekday = ?");
$stmt->bind_param("sssss",
$open[$i],
$open_2[$i],
$close[$i],
$close_2[$i],
$weekday[$i]);
$stmt->execute();
$stmt->close();
}
除非我不允许使用循环,否则代码对我来说似乎很完美?我不确定语法错误是什么。
答案 0 :(得分:2)
在开始close_2 = ?,
之前,您需要删除WHERE...
末尾的逗号
$stmt = $mysqli->prepare("UPDATE maxfoo SET open = ?,
open_2 = ?,
close = ?,
close_2 = ?
WHERE weekday = ?");