$query = " UPDATE Users SET username = "
. $username
. "AND password ="
. $password
. "AND email ="
. $email
. " WHERE id = '$id'";
即时将此查询放入我的数据库sql窗口,我收到此消息
#1064 - 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 '$query = " UPDATE Users SET username = " . $username . "AND password =" . $passw' at line 1
任何人都可以提供帮助
答案 0 :(得分:3)
Mysql Update查询无法以您尝试的方式运行
$query = "UPDATE
Users
SET username = '$username',
password ='$password',
email ='$email'
WHERE id = '$id'";
需要对字符串值使用单引号,并且更新的列需要用逗号分隔。
此外,您需要开始使用带有预准备语句的mysqli或PDO。
答案 1 :(得分:1)
您需要引号,将and
替换为,
:
$query = " UPDATE Users SET username = '" . $username . "' , password = '" . $password . "' , email = '" . $email . "' WHERE id = '$id'";
然而考虑injection
问题
答案 2 :(得分:0)
请考虑转到Mysqli
并且您的代码也容易受到注入。
截至您的问题
$query = " UPDATE Users SET username = '$username' AND password ='$password' AND email ='$email' WHERE id = '$id'";
应该可以正常工作
答案 3 :(得分:0)
用'
引号括起值
$query = "UPDATE Users
SET username = "'.$username.'" ,password="'.$password.'" ,email ="'. $email.'"
WHERE id = '$id'"; /* note enclosing single quotes above */
答案 4 :(得分:0)
$query = "UPDATE Users SET username='$username', password='$password', email='$email' WHERE id='$id'";
答案 5 :(得分:0)
所有其他答案都提出了非常有效的观点,但真正的问题(导致提供错误的实际问题)似乎是您将PHP语句直接放入SQL解释器中。 SQL / MySQL不会为你解析PHP。您需要在PHP环境中运行该命令。
答案 6 :(得分:-1)
这似乎是一个语法错误。尝试使用单引号和点+ + / / p>替换双引号
$ query ='UPDATE用户SET username ='+ $ username +'AND password ='+ $ password +'AND email ='+ $ email +'WHERE id ='+ $ id;
如果$ id是一个varchar,再次用单引号括起来。