以下是一个示例代码:
$db = connect_db();
$result = $db->prepare("SELECT * FROM users");
$result->execute();
$result = $result->fetchAll();
如果我的users表为空,则不会返回任何行,那么$ result会保持什么?
如果我像这样引用它:
if(!(isset($result))) print "no users";
会起作用吗?
感谢您的回答!
答案 0 :(得分:3)
来自fetchAll()
的文档:
如果获取的结果为零,则返回空数组;如果失败则返回FALSE。
所以,不,isset()
将不起作用,因为变量设置为空数组。您应该使用empty()
或count()
代替。或者,更好的是,其中一个PDO方法如rowCount()
(如果你的数据库支持这个)。
注意:文档是您的朋友。