gpt4 book ai didi

mysql - 更新查询以切换数据库中的值

转载 作者:行者123 更新时间:2023-11-29 10:11:07 27 4
gpt4 key购买 nike

我需要更新数据库方面的帮助。我的 PHP 代码如下所示。 $sql 不起作用,我想将 user_blocked 设置为 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);

}
?>

错误是:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHEN user_blocked='Yes' AND user_blocked='Yes' WHEN user_blocked='No' WHERE user' at line 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 注入(inject)攻击,请使用 prepared statements .

关于mysql - 更新查询以切换数据库中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50935740/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com