Mysql查询错误与语法

时间:2013-08-26 12:36:16

标签: php mysql database

我有这个查询,无法弄清楚什么是不正确的:

 mysql_query ("UPDATE 'users' SET 'profile'='".$file_path."'WHERE 'id'=".(int)$user_id)or die ("Error in query: $query. ".mysql_error());

这是一个错误: 查询错误:。您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在''用户'附近使用正确的语法SET'profile'='images / profiles / 7fe0e816b0.jpg'WHERE'id'= 72'在第1行

8 个答案:

答案 0 :(得分:2)

尝试使用backticks代替single-quotes

 mysql_query ("UPDATE `users` 
               SET `profile`='".$file_path."' 
               WHERE `id`=".(int)$user_id)
  or die ("Error in query: $query. ".mysql_error());

并且由于整个mysql_*扩展程序(提供带有前缀ext/mysql PHP命名的所有函数)从mysql_*开始正式弃用,并尝试避免PHP v5.5.0语句将来删除

您可以更好地使用其他两个MySQL扩展程序:MySQLiPDO_MySQL,其中任何一个都可以用来代替ext/mysql

答案 1 :(得分:2)

引号应该是反引号。将查询更改为:

mysql_query("UPDATE `users` SET `profile` = '".$file_path."' WHERE `id` = ".(int)$user_id);

无关的说明:
不要使用已弃用的mysql_*函数,将来会删除它们。请改用PDOmysqli

答案 2 :(得分:1)

将空格放在'和WHERE之间。不必要引用你的字段,因为它们的名称中没有空格

答案 3 :(得分:1)

尝试

mysql_query ("UPDATE users SET profile='".$file_path."' WHERE id=".(int)$user_id)or die ("Error in query: $query. ".mysql_error());

答案 4 :(得分:1)

使用此查询

  mysql_query ("UPDATE users SET profile='".$file_path."' WHERE id=".(int)$user_id) or die ("Error in query: $query. ".mysql_error());

答案 5 :(得分:1)

在列名和表名周围使用单引号,而不是使用反引号

     mysql_query ("UPDATE `users` SET profile='".$file_path."'
                   WHERE id = '".(int)$user_id."' ")
     or die ("Error in query: $query. ".mysql_error());

答案 6 :(得分:0)

尝试在表名和列名周围使用反引号而不是前引号:

UPDATE `users` SET `profile`='".$file_path."' WHERE `id`=".(int)$user_id

答案 7 :(得分:0)

尝试将反引用放在sql查询中而不是引用引号,并在'And WHERE子句之间放置空格。

您的查询看起来像这样,

mysql_query ("UPDATE `users` SET `profile`='".$file_path."' WHERE `id`=".(int)$user_id)
or die ("Error in query: $query. ".mysql_error());