我需要帮助更新数据库。我的PHP代码如下所示。 $sql
不起作用,如果有No,我想将user_blocked
设置为Yes,如果有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服务器版本相对应的手册,以便在'WHEN user_blocked ='是'和'user_blocked ='是'时使用正确的语法WHEN user_blocked ='No'用户'在第1行。
我不知道什么是正确的语法。
$sql = "UPDATE users SET user_blocked='No' WHEN user_blocked='Yes' AND
user_blocked='Yes' WHEN user_blocked='No' WHERE user_id='$user_id'";
$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_*()
或PDO
代替。您的代码容易受到SQL注入攻击,请使用prepared statements。