奇怪的SQL错误 - 没有打印输出

时间:2014-11-21 16:20:02

标签: php mysql sql

我的手上有一个相当奇怪的错误,我无法弄明白。我通过将$ username的值更改为实际值来尝试调试,并且它显示结果很好,我已经回显了SQL查询以查看正在传递的值是什么,它都是正确,但没有显示结果。

有什么想法吗?谢谢

$sql = mysql_query("SELECT username1, username2 FROM friends WHERE username1 = '$username' OR username2 = '$username' AND friends >= 2") or die (mysql_error());
while ($row = mysql_fetch_assoc($sql)) {
        echo "<p>".$row['username1']."</p>";
}

1 个答案:

答案 0 :(得分:2)

您没有考虑AND优先于OR的优先级。你需要添加括号。

$sql = mysql_query("SELECT username1, username2 " . 
                   "FROM friends " .
                   "WHERE ( username1 = '$username' OR username2 = '$username' ) AND friends >= 2") or die (mysql_error());
while ($row = mysql_fetch_assoc($sql)) {
        echo "<p>".$row['username1']."</p>";
}