当没有行时,mysql_num_rows不起作用

时间:2015-07-08 16:09:35

标签: php mysql mysql-num-rows

首先,是的,我知道mysql_num_rows()已被弃用。

现在,继续讨论实际问题,我正在创建一个用户可以发布内容的页面,而其他用户可以喜欢它们。但是当帖子显示,并且查看它们的用户没有/不喜欢帖子时,mysql_num_rows()不起作用。

这是我的代码:

<?
$plikes=mysql_query("SELECT * FROM postLikes WHERE username='$myusername' AND postId='$postId'");
$plikesRows=mysql_num_rows($plikes)or die("error: ".mysql_error());
if ($plikesRows>=1) {
//stuff
}
else {
//other stuff
}
?>

变量$myusername$postId设置正确,我测试了查询,它没有任何错误。但当我进入页面时,显示的只是“错误:”,没有任何错误。

1 个答案:

答案 0 :(得分:1)

这行代码没有按照你的想法行事。 mysql_num_rows($plikes)变为0,其类型变为false,因此会触发OR语句的后半部分。这是因为通过使用OR,您将代码行的结果转换为布尔值。

$plikes=mysql_query("SELECT * FROM postLikes WHERE username='$myusername' AND postId='$postId'");
if (!mysql_error()) {
    $plikesRows=mysql_num_rows($plikes);
    if ($plikesRows>=1) {
    //stuff
    }
    else {
    //other stuff
    }
}
else {
    die("error: ".mysql_error());
}