PHP - 当UPDATE SET时,MySQL语句总是将值设置为1

时间:2016-03-09 18:46:17

标签: php mysql sql-update wamp lamp

foreach ($_POST as $nazwa_checkboxa=>$id) {
    $s = "SELECT uprawnienie FROM user WHERE Id_user=".$id;
    $helpdesk = 0;

    if ($s == 0) {
        $helpdesk = 1;
    }

    $z = "UPDATE user SET uprawnienie = ".$helpdesk." WHERE Id_user=".$id;
    $wynik = $polaczenie->query($z);
    $zmienione++;
}

uprawnienie返回0 = normal用户和1 = administrator 更新始终将值设置为1,我可以将用户更改为管理员(0到1),但它不会工作1到0

2 个答案:

答案 0 :(得分:1)

实际上,您可以使用一个查询来执行此操作,例如:

update user
set uprawnienie = (SELECT if(uprawnienie=1,0,1) FROM user WHERE Id_user = '<id>')
where Id_user = '<id>'

答案 1 :(得分:0)

您似乎没有为query()实际运行$s。因此,if ($s==0)不会检查查询结果,而是检查"SELECT..."==0。根据{{​​3}},“转换为整数进行此类比较时,”字符串最有可能返回0“。