我正在使用此语法更新消息:
$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']."'
,也会出现相同的错误。
答案 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"
$tags
至addslashes($tags)
在通过原始查询进行更新之前。了解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中运行查询,然后在代码中尝试。所以你会直接知道哪里有问题。