PHP 来自 Oracle 查询的结果数

PHP number of results from Oracle query

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

然而,以下列方式测试结果给我带来了问题。在我实际从查询中获得结果的情况下,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
}