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;
答案 0 :(得分:9)
LIKE
是SQL中的reserved word。
您必须分隔与SQL保留字冲突的列名:
SELECT * FROM dislikes WHERE pid = $post AND uid = $userid AND `like` = 1;
但是您的错误的解释是mysqli_query()返回 false 而不是有效的查询结果。您需要检查函数的返回值以确保它是资源而不是 false 。