我目前正在创建一个禁止用户通过MySQLi数据库的禁令表单,但是目前当我尝试禁止它们时,'active'会更改为0而不是2并且banreason不会更新...这里是代码
$qry = "UPDATE members SET active = '2' AND breason = '".$_POST['reason']."' WHERE login = '".$_POST['login']."'";
$result = @mysqli_query($GLOBALS["___mysqli_ston"], $qry);
if($result) {
header("location: banneduser?login=$login&reason=$reason");
exit();
}else {
die("Error:".((is_object($GLOBALS["___mysqli_ston"])) ? mysqli_error($GLOBALS["___mysqli_ston"]) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)));
}
我在页面上没有收到任何错误。
答案 0 :(得分:1)
尽管你的评论是不安全的,但你对此感到满意,columns to be updated should not be separated by the AND operator in an UPDATE statement。
UPDATE [LOW_PRIORITY] [IGNORE] table_reference
SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...
[WHERE where_condition]
...
用逗号替换AND
。