检查oci_fetch_array中的空行集

时间:2014-11-03 07:37:21

标签: php oci

我正在做以下事情......

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

不确定为什么空条件不起作用......

2 个答案:

答案 0 :(得分:1)

您的空条件无效,因为$row永远不会nulloci_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>";
}

答案 1 :(得分:0)

尝试 -

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() - 以查询的形式返回查询中的下一行。