Php 检查oci_fetch_数组中是否存在空行集

Php 检查oci_fetch_数组中是否存在空行集,php,oracle-call-interface,Php,Oracle Call Interface,我正在做以下事情 $approved = oci_parse($conn_prs, "select * from patch_files where patch_reviewer = '". $_SESSION['id'] ."' and patch_status = 'Approved'"); // now rows available for current id oci_execute($approved); while ($row = oci_fetch_array($approved,

我正在做以下事情

$approved = oci_parse($conn_prs, "select * from patch_files where patch_reviewer = '". $_SESSION['id'] ."' and patch_status = 'Approved'"); // now rows available for current id
oci_execute($approved);
while ($row = oci_fetch_array($approved, OCI_BOTH  + OCI_RETURN_NULLS )) {
var_dump($row); // shows nothing
if ($row == null) { echo "<p>None Found...</p>"; }
else { .... 
$approved=oci\u parse($conn\u prs,“从修补程序文件中选择*,其中修补程序审阅者=”。$\u会话['id']。“'和修补程序状态='approved');//现在,行可用于当前id
保监处执行(已批准);
而($row=oci\u fetch\u数组($approved,oci\u BOTH+oci\u RETURN\u NULLS)){
var_dump($row);//不显示任何内容
如果($row==null){echo“未找到任何…

”;} 否则{。。。。
不确定空条件不起作用的原因…

请尝试-

while ($row = oci_fetch_array($approved, OCI_BOTH  + OCI_RETURN_NULLS )) {
   var_dump($row); // shows nothing
   if (empty($row)) { echo "<p>None Found...</p>"; }
   else { ....
while($row=oci\u fetch\u数组($approved,oci\u BOTH+oci\u RETURN\u NULLS)){
var_dump($row);//不显示任何内容
如果(空($row)){echo“未找到任何…

”;} 否则{。。。。

oci\u fetch\u array()
将查询中的下一行作为数组返回。

您的空条件不起作用,因为
$row
从不为
null
oci\u fetch\u array()
将返回行字段的数组,或者
false
。如果没有行,则不会执行
循环

您似乎误解了
OCI\u RETURN\u NULLS
的用途。使用时,它会为
$row
中的空字段创建数组元素,如果没有行,则不会创建空数组

做你想做的事的一种快速而肮脏的方式是:

$i = 0;
while ($row = oci_fetch_array($approved, OCI_BOTH  + OCI_RETURN_NULLS)) {
    $i++;
    ...
}
if ($i == 0) {
    echo "<p>None Found...</p>";
}
$i=0;
而($row=oci\u fetch\u数组($approved,oci\u BOTH+oci\u RETURN\u NULLS)){
$i++;
...
}
如果($i==0){
回显“未找到…”

”; }
var\u dump($row)
不打印任何内容??var\u dump($row)不打印任何内容……在有笔记本电脑时工作正常。