php无法使用empty()返回FATAL ERROR来检查PDO结果是否为空

Bro*_*ias 14 php pdo fatal-error

我想检查我准备好的查询是否已返回空,而不必进入循环.这是我尝试使用的代码:

if(empty($pQuery1->fetch(PDO::FETCH_ASSOC))){}
Run Code Online (Sandbox Code Playgroud)

当我尝试这个时,我得到错误:

Fatal error: Can't use method return value in write context

我是否使用PDO->fetchALLPDO->fetch收到同样的错误.我应该采取不同的做法吗?

Jam*_*ore 33

您需要将结果分配给变量,然后调用empty()变量.这只是一个烦人的empty()功能限制.看到这个问题.

$results = $pQuery1->fetch(PDO::FETCH_ASSOC);
if (empty($results)){}
Run Code Online (Sandbox Code Playgroud)

  • 我想指出你也可以做`if(!$ results){}`因为它的行为相同. (7认同)
  • @BrookJulias,!运算符将其操作数转换为布尔值,空数组转换为布尔值false.!operator和empty()在逻辑上是100%等价的. (4认同)
  • @chris - 以这种方式使用`$ results`只有在结果返回false时才会失败.可以有一个空结果而不是假的. (2认同)