首先,是的,我知道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
设置正确,我测试了查询,它没有任何错误。但当我进入页面时,显示的只是“错误:”,没有任何错误。
答案 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());
}