2016-11-19 127 views
-4

当我尝试执行下面的代码时,显示错误:
无效的查询:您的SQL语法有错误;检查对应于你的MySQL服务器版本正确的语法使用手动近“”,“”,“”,“”)”在1号线
Mysql无法更新数据

$result = mysql_query("REPLACE INTO templates (id,title,subtitle,background,image,image2,image3,image4,image5,image6,createdby) VALUES ('$id','$title','$subtitle','$background','$image','$image2','$image3','$image4,'$image5','$image6','$fbuid')"); 
if (!$result) { 
    die('Invalid query: ' . mysql_error()); 
} 


但下面的代码工作完全精细:

mysql_query("REPLACE INTO Users (fbuid,username,email,token) VALUES ('$fbuid', '$name', '$email', '$token')"); 


什么可以是问题?

+0

可以参考前面的帖子更新数据 http://stackoverflow.com/questions/10177208/update-a-column-value-replacing-part-of-a-string 希望这有助于你。 –

+2

我已经问过自己很多次了,也许你可以在下面发表评论。你为什么使用'mysql _ *()'函数? – Xorifelse

+0

如果'$ id'是您的主键,您不需要插入它,您可以将其保留为这样一个空白:mysql_query(“REPLACE INTO templates(id,title,subtitle,background,image,image2,image3,image4,image5 ,image6,createdby)VALUES('','$ title','$ subtitle','$ background','$ image','$ image2','$ image3','$ image4','$ image5',' $ image6','$ fbuid')“);' – EaBangalore

回答

0

其实我错过了'登录后$image4 ......问题解决了。

+0

*请不要像以前那样疯狂地将用户数据放到SQL语句中,这是一个明显的潜在安全漏洞。如果$ title来自用户且包含撇号,则他们可以跳出您的SQL,例如可能会删除整个数据库。请阅读关于如何使用占位符的PHP手册,例如使用http://php.net/manual/en/mysqli.quickstart.prepared-statements.php(或PDO版本),或者如果你必须使用mysql_real_escape_string。 –