检查空行集oci_fetch_array

问题描述:

我做了以下...检查空行集oci_fetch_array

$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 { .... 

不知道为什么空的条件是不工作...

由于$row从来没有null,您的空条件不起作用。 oci_fetch_array()返回行字段的数组,或false。如果没有行,则不执行while循环。

您似乎误解了OCI_RETURN_NULLS的用途。使用时,它创建数组元素字段$row数组元素,如果没有行,则不是空数组。

一个快速和肮脏的方式做你想要的是:

$i = 0; 
while ($row = oci_fetch_array($approved, OCI_BOTH + OCI_RETURN_NULLS)) { 
    $i++; 
    ... 
} 
if ($i == 0) { 
    echo "<p>None Found...</p>"; 
} 

尝试 -

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 { .... 

oci_fetch_array() - 将查询的下一行作为数组返回。

+0

都能跟得上...没有工作...'var_dump'显示什么... – 2014-11-03 07:43:28

+0

'的var_dump($行)'打印没有?? – 2014-11-03 07:45:19

+0

var_dump($ row)什么都不打印......当有一台笔记本电脑时工作正常。有一行时, – 2014-11-03 07:45:59