【发布时间】:2014-01-30 20:22:30
【问题描述】:
// $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();
}
除非我不允许使用循环,否则代码对我来说似乎很完美?我不确定语法错误是什么。
【问题讨论】:
-
不要在循环内准备语句,否则你将否定准备好的语句的性能优势......在循环之前准备它,并且只在循环内绑定参数跨度>