php中的mysql空查询 - 我得到了什么?资源ID?

时间:2012-03-01 00:15:30

标签: php mysql resources

我想检查我的查询是否为空(没有行)。什么是最好的方法呢?

我在下面的“$ result”和“$ row”中得到了什么(这就是我的目标 - if($result)或者使用if($row)意味着它不是空的任何更好的建议?

感谢。

       $result = mysql_query("SELECT * FROM table1 WHERE column1= '$var1'
                              AND column2 IN ('no','nein','nope')
                              AND timestamp BETWEEN '$date' AND NOW()"); 
       $row = mysql_fetch_assoc($result);    

3 个答案:

答案 0 :(得分:2)

您可以使用mysql_num_rows($result)获取行数,或者您可以查看是否$row === false;

如果查询没有结果,

$row将是记录集OR false的第一行。 如果查询成功$result,则false将成为记录集资源。

如果您是项目的早期和/或只是学习,请考虑切换到新的数据库界面PDO。至少使用Mysqli ...你现在使用的mysql扩展有点过时了。它有效,有时甚至在遗留应用程序/网站中也是必需的,但如果可能的话应该避免使用它。

答案 1 :(得分:2)

测试一下。

$result = mysql_query("SELECT * FROM table1 WHERE column1= '$var1'
                          AND column2 IN ('no','nein','nope')
                          AND timestamp BETWEEN '$date' AND NOW()"); 
$row = mysql_fetch_array($result);

if (mysql_num_rows($result) > 0) {
   echo $row['column name'];
}

答案 2 :(得分:1)

使用mysql_num_rows获取行数。

如果您的查询未失败,

$ result将始终为Resource类型。