mysql_num_rows()issue ::两个查询的结果相同

时间:2013-07-15 06:22:44

标签: php mysql phpmyadmin mysql-num-rows

$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尝试它们,并且两者都给了我相同的结果集。

3 个答案:

答案 0 :(得分:2)

试试这个

$query = "SELECT contents FROM contents WHERE name = '$view' AND website = '$website_mode'";
$select = mysql_query($query) or die(mysql_error());

看到你得到了。您的查询必定是错误的,因此您$selectFALSE

尝试学习mysqli_*PDO。 mysql_ *正式被弃用。

答案 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)."'";