如果select查询的结果为空(没有行),变量保持什么?

时间:2013-07-10 17:09:23

标签: php sql pdo

以下是一个示例代码:

$db = connect_db();

$result = $db->prepare("SELECT * FROM users");
$result->execute();
$result = $result->fetchAll();

如果我的users表为空,则不会返回任何行,那么$ result会保持什么?

如果我像这样引用它:

if(!(isset($result))) print "no users";

会起作用吗?

感谢您的回答!

1 个答案:

答案 0 :(得分:3)

来自fetchAll()的文档:

  

如果获取的结果为零,则返回空数组;如果失败则返回FALSE。

所以,不,isset()将不起作用,因为变量设置为空数组。您应该使用empty()count()代替。或者,更好的是,其中一个PDO方法如rowCount()(如果你的数据库支持这个)。

注意:文档是您的朋友。