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