在mysq,php中更新查询的错误消息

时间:2015-05-01 09:46:35

标签: php mysql syntax sql-update

我正在使用此语法更新消息:

$uname=$_POST['username'];
$ans=mysql_query("UPDATE userdata SET tag1 = '$tag1', tag2 = '$tag2', tag3 = '$tag3', pass1='$t1', pass2='$t2', pass3='$t3', WHERE username =$uname") or die("Invalid query: " . mysql_error());

$uname此处为userxyz,错误消息为:

  

查询无效:您的SQL语法出错;检查与MySQL服务器版本对应的手册,以便在第1行的“WHERE username = userxyx”附近使用正确的语法

如果我输入'$uname'之类的单引号,或者即使我在更新查询中使用'".$_POST['username']."',也会出现相同的错误。

4 个答案:

答案 0 :(得分:1)

删除之前的逗号(,),你应该将$ uname放在\" $ uname \"

$ans=mysql_query("UPDATE userdata SET tag1 = '$tag1', tag2 = '$tag2', tag3 = '$tag3', pass1='$t1', pass2='$t2', pass3='$t3' WHERE username =\"$uname\"")

答案 1 :(得分:1)

$uname=$_POST['username'];
$ans=mysql_query("UPDATE userdata SET tag1 = '$tag1', tag2 = '$tag2', tag3 = '$tag3', pass1='$t1', pass2='$t2', pass3='$t3' WHERE username =$uname") or die("Invalid query: " . mysql_error());

尝试删除" " (逗号)在代码中的where条件之前。

答案 2 :(得分:0)

1.在

之前删除逗号(,)
"UPDATE userdata SET tag1 = '$tag1', tag2 = '$tag2', tag3 = '$tag3', pass1='$t1', pass2='$t2', pass3='$t3' WHERE username =$uname"
  1. 你应该改变你的 $tagsaddslashes($tags)
  2. 在通过原始查询进行更新之前。了解here

答案 3 :(得分:0)

更改您的查询

"UPDATE userdata SET tag1 = '$tag1', tag2 = '$tag2', tag3 = '$tag3', pass1='$t1', pass2='$t2', pass3='$t3', WHERE username =$uname"

"UPDATE userdata SET tag1 = '$tag1', tag2 = '$tag2', tag3 = '$tag3', pass1='$t1', pass2='$t2', pass3='$t3' WHERE username =$uname"

您需要先在phpmyadmin或mysql cli中运行查询,然后在代码中尝试。所以你会直接知道哪里有问题。