0

我的 PL/SQL 过程返回一个游标。它总是返回数据。我获取(oci_fetch_assoc)它并将其保存在一个数组中。如果找到结果,则数组的键将是字符串。如果游标没有找到数据,它将返回值 0,因此数组的键将是数字。

while($data = oci_fetch_assoc($cursor)){
    if(!isset($data[0])){
       ...
    }
...
...
}

检查数组不只是 0 而是包含数据的最佳方法是什么?

谢谢

4

4 回答 4

1

这是我的解决方案:

if($data != array(0 => "0")){

它有效

于 2010-04-08T15:02:36.863 回答
0
if(!empty($data[0])) { ... }
于 2010-04-08T14:39:47.067 回答
0

您可以使用 '===' 来查看 $data[0] 是否等于 0。例如:

if($data[0]===0) {
   // It really is the number 0
}
于 2010-04-08T14:40:07.020 回答
0

oci_fetch_assoc 返回一个关联数组,即列名是数组中的索引。

尝试其中之一:

($data['firstColumn'] === 0)
(reset($data) === 0)

其中 'firstColumn' 是第一列的实际名称

于 2010-04-08T15:07:47.727 回答