mysql_num_rows 在没有行时不起作用
mysql_num_rows doesn't work when there are no rows
首先,是的,我知道 mysql_num_rows()
已被弃用。
现在,继续实际问题,我正在制作一个页面,用户可以在其中 post 东西,其他用户可以喜欢它们。但是当 post 显示时,并且查看它们的用户不 t/hasn 不喜欢 post,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
设置正确,我测试了查询,它没有任何错误。但是当我进入页面时,它只显示 "error:",没有任何错误。
那行代码没有按照您的想法进行。 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());
}
首先,是的,我知道 mysql_num_rows()
已被弃用。
现在,继续实际问题,我正在制作一个页面,用户可以在其中 post 东西,其他用户可以喜欢它们。但是当 post 显示时,并且查看它们的用户不 t/hasn 不喜欢 post,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
设置正确,我测试了查询,它没有任何错误。但是当我进入页面时,它只显示 "error:",没有任何错误。
那行代码没有按照您的想法进行。 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());
}