Oracle查询

时间:2016-01-06 08:26:34

标签: php oci

我正在Oracle数据库中执行select操作,需要针对结果为false(不包含结果)或为true(包含一个或多个结果)采取不同的操作。

然而,以下列方式测试结果会给我一个问题。在我实际上从我的查询得到结果的情况下,if(!自然地验证为false并转到else语句 - 完美!

但是在进行此测试时,内部指针会在结果中移动,从而在稍后执行while语句时会丢失第一个结果。

if (!($row = oci_fetch_array($get_doc_paths, OCI_ASSOC+OCI_RETURN_NULLS))){
    do something
}

else {
    while ($row = oci_fetch_array($get_doc_paths, OCI_ASSOC+OCI_RETURN_NULLS)){
        do something with $row
    }           
}

如何在不移动内部指针的情况下测试是否有结果?

在MySQL中我会使用mysqli_num_rows或只是重置指针。我无法通过Oracle找到解决方法。

1 个答案:

答案 0 :(得分:1)

$status = false;

while($row = oci_fetch_array(...)) {
    $status = true;
    // Do something with row
}

if(!$status) {
    // Do something else
}