这个MySQL查询似乎不起作用

时间:2013-09-14 09:54:09

标签: php mysql mysqli

SELECT * FROM dislikes WHERE pid = $post AND uid = $userid AND like = 1;

此查询不起作用(我不知道为什么)。一旦我使用mysqli执行此查询并尝试查找num行,我得到

  

注意:尝试在第13行的C:\ wamp \ www \ include \ like.php中获取非对象的属性

就是你知道,表不喜欢当前是空的,有4列:id,pid,uid等。

编辑:

echo "SELECT * FROM dislikes WHERE pid = $post AND uid = $userid AND like = 1;";
$result = $mysqli->query("SELECT * FROM dislikes WHERE pid = $post AND uid = $userid AND like = 1;");
$row_cnt = $result->num_rows;

这是php代码。第一行的回声输出:

SELECT * FROM dislikes WHERE pid = 2 AND uid = 3 AND like = 1;

1 个答案:

答案 0 :(得分:9)

LIKE是SQL中的reserved word

您必须分隔与SQL保留字冲突的列名:

SELECT * FROM dislikes WHERE pid = $post AND uid = $userid AND `like` = 1;

但是您的错误的解释是mysqli_query()返回 false 而不是有效的查询结果。您需要检查函数的返回值以确保它是资源而不是 false

另见Reference - What does this error mean in PHP?