来自Oracle查询的PHP结果数


PHP number of results from Oracle query

我正在Oracle数据库中进行选择,需要对结果为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实现这一点的方法。

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