WHERE附近的MySql查询错误

Yas*_*tha 1 php mysql sql

我的代码是

$user_query = '
     UPDATE  
          users  
     SET  
          `password`="$password",  
          `email`="$email", 
          `position`="$position", 
     WHERE  
          `username`=".$uname."';
$user_result = mysql_query($user_query, $connection);
confirm_query($user_result);
Run Code Online (Sandbox Code Playgroud)

当我运行此查询时,它给我一个错误:

数据库查询失败:您的SQL语法中有错误;
检查与MySQL服务器版本对应的手册,以便在'WHERE username=" 附近使用正确的语法.$ uname."'在第7行

任何人都可以帮我解决这个错误吗?

Roc*_*mat 6

您的查询是单引号,因此不会解析变量.正如您所看到的那样,字符串就是字面意思

`username`=".$uname."
Run Code Online (Sandbox Code Playgroud)

你需要在enitre周围使用双引号来正确解析变量.

$user_query = "
 UPDATE  
      users  
 SET  
      `password`='$password',  
      `email`='$email', 
      `position`='$position'
 WHERE  
      `username`='$uname'";
Run Code Online (Sandbox Code Playgroud)

或者正确使用字符串连接运算符..

$user_query = '
 UPDATE  
      users  
 SET  
      `password`="'.$password.'",  
      `email`="'.$email.'", 
      `position`="'.$position.'"
 WHERE  
      `username`="'.$uname.'"';
Run Code Online (Sandbox Code Playgroud)

正如其他人所指出的,这里还有一个额外的,postion="$position".