如何检查 ADOdb 记录集是否为空

how to check if ADOdb recordset is empty

我 运行 在检查 ADODB5 记录集是否为空时遇到问题

$db = ADONewConnection($dbdriver);
$db->Connect($dbhost, $dbuser, $dbpass, $dbname);
$rs = $db->Execute($query);

现在,如果我尝试检查记录集

if(isset($rs[0]))
...
...

我收到错误 Cannot use object of type ADORecordSet_mysqli as array

如何检查返回的记录集是否为空?

isset 评估之前我将 ADODB 记录集转换为数组

$ra = $rs->getRows();

然后测试 $ra 数组是否为空

if(empty($ra)){
...
...
}

如果$db->Execute($query)方法失败,它可能不会return一个ADORecordSet对象。在确定 $rs 有效之前,我不会调用 $rs->getRows() 方法,因此,

if (is_subclass_of($rs, 'ADORecordSet') AND $rs->recordCount()) {
    // I have rows
    // ...
}