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
}
我正在我的 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
}