我这里有这个代码,它会生成一系列更新查询,但它不起作用。
$query = null;
$chk = null;
$l_id = null;
foreach ($result as $key => $value) {
if($value === true){
$chk = '1';
}else {
$chk = 'NULL';
}
$l_id = (int)ltrim($key, 'checkbox-');
$query .= "UPDATE progress SET checked = $chk WHERE account_id = $id AND lesson_id = $l_id;";
}
$res = mysqli_query($connection, $query);
但与此同时,当我在此代码的末尾添加“die($query);
”并在phpMyAdmin中复制它时,它的工作正常。
例如:
UPDATE progress SET checked = 1 WHERE account_id = 5 AND lesson_id = 5;UPDATE progress SET checked = 1 WHERE account_id = 5 AND lesson_id = 6;
Mysqli_error说:
“您的SQL语法有错误;请查看手册 对应于您的MySQL服务器版本,以便使用正确的语法 'UPDATE progress SET checked = 1 WHERE account_id = 5 AND附近 第1行的lesson_id = 6'“
P.S。对不起,如果语言错了,我是俄语))
答案 0 :(得分:2)
您必须使用mysqli_multi_query
,mysql_query
仅用于单个查询
$res = mysqli_multi_query($connection, $query);
有关更多信息,请阅读documentation
答案 1 :(得分:-1)
您将$chk
设置为字符串值,但在其周围插入'
单引号。
将$chk
设为1
或NULL
,或将更新更改为SET checked = '$chk'