我试图"强迫"此代码遍历每一行并更新与上述语句匹配的每一行..
if(isset($itemID1) && isset($itemID2) && isset($itemID3) && isset($itemID4) && isset($itemID5) && isset($itemID6) && isset($itemID7) && isset($itemID8) && isset($itemID9) && isset($itemID10)){
$upd = "UPDATE booking SET status='$status/ADM', verification='No'";
if($CalDate !=''){
$upd.= ",CalDate='$CalDate'";
}
if($DueDate !=''){
$upd.= ",DueDate='$DueDate'";
}
if($groupid1 != 0){
$upd.= " WHERE groupid IN ('$groupid1')";
}
if($groupid2 != 0){
$upd.= " WHERE groupid IN ('$groupid2')";
}
if($groupid1 == 0){
$upd.= " WHERE itemid IN ('$itemID1')";
}
if($groupid2 == 0){
$upd.= " WHERE itemid IN ('$itemID2')";
}
}
已知错误:错误无法更新数据原因:您的SQL语法中存在错误;检查与您的MySQL服务器版本相对应的手册,以获得正确的语法,以便在' WHERE itemid IN附近使用(' 143')'在第1行
该脚本或脚本只会更新它经过的第一行。至于groupid1!= 0
答案 0 :(得分:1)
错误很可能是您构建WHERE
子句的地方。
这可能是因为您在语句中添加了多个WHERE
子句。您的SQL语句只能包含一个WHERE
子句。
例如,如果groupid1
和groupid2
不为0,那么您将收到以下声明:
SELECT ... WHERE groupid IN ('$groupid1') WHERE groupID IN ('$groupid2')
这显然无效。您需要添加一个WHERE
子句,然后使用AND
或OR
添加参数,以便根据需要将它们分开:
SELECT ... WHERE groupid IN ('$groupid1') OR groupID IN ('$groupid2')