$query = "SELECT contents FROM contents WHERE name = '$view'";
$select = mysql_query($query);
if(mysql_num_rows($select) == 0){
//do something//
} else{
//do something//
}
代码工作没有问题,但如果我改变查询,如下所示
$query = "SELECT contents FROM contents WHERE name = '$view' AND website = '$website_mode'";
我收到了空结果集的警告
警告:mysql_num_rows()要求参数1为资源,在
中给出布尔值
注意:我使用printf打印两个查询并通过phpmyadmin尝试它们,并且两者都给了我相同的结果集。
答案 0 :(得分:2)
试试这个
$query = "SELECT contents FROM contents WHERE name = '$view' AND website = '$website_mode'";
$select = mysql_query($query) or die(mysql_error());
看到你得到了。您的查询必定是错误的,因此您$select
为FALSE
答案 1 :(得分:1)
当$select = mysql_query($query);
出现错误结果时,会返回布尔值FALSE
。
含义$select = FALSE
,你不能在布尔值上执行mysql_num_rows()
。
您可以打印$sql
以查看最终结果sql是否正常。
你可以mysql_error()
查看给出的实际mysql错误,例如缺少表,连接到错误的数据库等等。
答案 2 :(得分:0)
$query = "SELECT contents FROM contents WHERE name = '$view' AND website = '$website_mode'";
在此查询中可能存在SQl注入
您的查询应该是
$query = "SELECT `contents` FROM `contents` WHERE `name` = '".mysql_real_escape_string($view)."' AND `website` = '".mysql_real_escape_string($website_mode)."'";