【问题标题】:php cannot check if a PDO result is empty using empty() returns FATAL ERRORphp 无法检查 PDO 结果是否为空,使用 empty() 返回 FATAL ERROR
【发布时间】:2012-05-27 11:49:02
【问题描述】:

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

if(empty($pQuery1->fetch(PDO::FETCH_ASSOC))){}

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

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

无论我使用PDO->fetchALL 还是PDO->fetch,我都会收到相同的错误。我应该做些不同的事情吗?

【问题讨论】:

    标签: php pdo fatal-error


    【解决方案1】:

    您需要将结果分配给一个变量,然后在该变量上调用empty()。这只是 empty() 函数的一个恼人的限制。请参阅this 问题。

    $results = $pQuery1->fetch(PDO::FETCH_ASSOC);
    if (empty($results)){}
    

    【讨论】:

    • id 想指出你也可以这样做 if (!$results) {} 因为它的行为相同。
    • @chris if(empty($foo)) 如果未设置参数,则不会生成警告。如果未设置参数,if(!$foo) 将生成警告。 php.net/manual/en/function.empty.php
    • 它是在上一行设置的:)
    • @chris - 以这种方式使用 $results 只有在结果返回 false 时才会失败。可以有一个空的结果而不是假的。
    • @BrookJulias,!运算符将其操作数转换为布尔值,空数组转换为布尔值 false。 ! operator 和 empty() 在逻辑上是 100% 等价的。
    猜你喜欢
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 2019-03-23
    • 1970-01-01
    • 1970-01-01
    • 2016-07-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多