0

我需要更新数据库的帮助。我的 PHP 代码如下所示。不工作,如果没有$sql我想设置user_blockedYes ,如果有Yes ,我想设置为No。对不起我的英语,对不起我的代码,但我是初学者。

<?php 
require('dbconnect.php');

if(isset($_POST['block_user'])) {

$user_id = $_POST['user_id_block'];
$sql = "UPDATE users SET user_blocked='No' WHEN user_blocked='Yes' AND 
user_blocked='Yes' WHEN user_blocked='No' WHERE user_id='$user_id'";
$retval = mysql_query($sql, $conn);

if(! $retval) {
    die('Could not block/unblock user: ' . mysql_error());
} else {
    header('Refresh:0');
}
mysql_close($conn);

}
?>

错误是:

您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'WHEN user_blocked='Yes' AND user_blocked='Yes' WHEN user_blocked='No' WHERE user' 附近使用正确的语法。

我不知道什么是正确的语法。

$sql = "UPDATE users SET user_blocked='No' WHEN user_blocked='Yes' AND 
user_blocked='Yes' WHEN user_blocked='No' WHERE user_id='$user_id'";
4

1 回答 1

1
$sql = "UPDATE `users` SET `user_blocked` = CASE
    WHEN `user_blocked` = 'No' THEN 'Yes'
    WHEN `user_blocked` = 'Yes' THEN 'No'
    END WHERE user_id='$user_id'";

另外:您使用mysql_*()了自 PHP 7 起已弃用的函数。请改用mysqli_*()OR PDO。您的代码容易受到 SQL 注入攻击,请使用准备好的语句

于 2018-06-19T19:40:08.873 回答