Mysql查询奇怪的错误

时间:2014-04-22 13:21:43

标签: php mysql sql

当其他同一页面运行良好但另一个页面在同一查询代码上出错时,我收到错误。

这是我的代码有什么问题?

$ttt = mysql_query("SELECT * FROM like WHERE (user_id='$user_id' AND sound_id='$sound_id')",$link) or die(mysql_error());

错误

  

您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便使用正确的语法,例如WHERE(user_id ='' AND sound_id ='')'在第1行

5 个答案:

答案 0 :(得分:3)

like是一个SQL reserved word,你应该在反引号中使用“like”``

$ttt = mysql_query("SELECT * FROM `like` WHERE (user_id='$user_id' AND sound_id='$sound_id')",$link) or die(mysql_error());

答案 1 :(得分:1)

like 

是保留字,不能像您尝试的那样用作表名。尝试将其设置为反引号或重命名表。

答案 2 :(得分:1)

就像保留关键字一样使用反引号

`like`

https://dev.mysql.com/doc/refman/5.5/en/reserved-words.html

在mysql中使用LIKE

select * from table where username like '%aaa';
select * from table where username like '%aaa%';
select * from table where username like 'aaa%';

答案 3 :(得分:0)

作为一项规则,您不应该使用保留字,但如果您必须,并且出于此问题的目的,请在其周围加上括号。

$ttt = mysql_query
("SELECT * 
FROM [like] 
WHERE (user_id='$user_id' AND sound_id='$sound_id')",$link) or die(mysql_error());

答案 4 :(得分:0)

Like是保留字。最好更改您的table name或者像like

这样的后退

试试这个。

$ttt = mysql_query("SELECT * FROM like_table WHERE user_id=$user_id AND sound_id=$sound_id",$link) or die(mysql_error());