我在oracle中有一个简单的select查询,我想对返回的行数使用一个条件。
oci_execute($query); // The query return 5 rows
//$numrows = oci_num_rows($query);
$numrows = oci_fetch_all($query); // The value of the $numrows is 5
if($numrows>0){ // This condition prompts the **fetch out of sequence** error
//do something
}else{
//do something else
}
基于我在谷歌搜索后发现的内容,我知道这是因为光标现在位于查询结果的最后一行之后(可能用于计算行数)。
我已经通过在获取行数后立即再次执行查询来暂时管理此操作。它似乎工作。但我感觉自己在愚弄自己。
有没有办法解决这个问题?
答案 0 :(得分:0)
我没有两次运行相同的查询,而是让自己写了一个更轻松的查询,只计算结果行的数量。
$numrows = oci_execute($count_query); // The query return 5
if($numrows>0){
oci_execute($select_query);
// More code here
}else{
//do something else
}