oci_num_rows
(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)
oci_num_rows — 返回语句执行后受影响的行数
说明
oci_num_rows(resource
$stmt
): intoci_num_rows() 返回语句执行后受影响的行数。
注意:
本函数并不返回 SELECT 查询出来的行数!对于 SELECT 语句本函数将返回用 oci_fetch*() 函数取到缓冲区的行数。
示例 #1 oci_num_rows() 例子
<?php
echo "<pre>";
$conn = oci_connect("scott", "tiger");
$stmt = oci_parse($conn, "create table emp2 as select * from emp");
oci_execute($stmt);
echo oci_num_rows($stmt) . " rows inserted.<br />";
oci_free_statement($stmt);
$stmt = oci_parse($conn, "delete from emp2");
oci_execute($stmt, OCI_DEFAULT);
echo oci_num_rows($stmt) . " rows deleted.<br />";
oci_commit($conn);
oci_free_statement($stmt);
$stmt = oci_parse($conn, "drop table emp2");
oci_execute($stmt);
oci_free_statement($stmt);
oci_close($conn);
echo "</pre>";
?>
oci_num_rows() 在出错时返回 false
。
注意:
在 PHP 5.0.0 之前的版本必须使用 ocirowcount() 替代本函数。该函数名仍然可用,为向下兼容作为 oci_num_rows() 的别名。不过其已被废弃,不推荐使用。

User Contributed Notes 5 notes
pluueer at hotmail dot com ¶
12 years ago
If you want to return te number of rows without fetching all data it might by more efficient to use this code (correct me if I'm wrong):
$sql_query = 'SELECT COUNT(*) AS NUMBER_OF_ROWS FROM (' . $your_query . ')';
$stmt= oci_parse($conn, $sql_query);
oci_define_by_name($stmt, 'NUMBER_OF_ROWS', $number_of_rows);
oci_execute($stmt);
oci_fetch($stmt);
echo $number_of_rows;
Dawid Krysiak ¶
5 years ago
oci_num_rows() called after running i.e. TRUNCATE query, always returns 0.
raywachaga at gmail dot com ¶
3 years ago
<?php if ( oci_num_rows($result) == false ) ?>
You can use the snippet above to test out if a select statement returned any rows, it won't do a count but it comes in handy
justin at flakmag dot com ¶
21 years ago
It appears the easiest workaround if you want to get numrows without moving to the end of the result set is to use:
numrows = OCIFetchStatement(...);
OCIExecute(...);
So that the execute re-executes the query. It's horribly inefficient to query twice, but it works.
batti at digito dot com ¶
22 years ago
this function can be used with select statement, and also return affected number of rows.
But remember this, use this after fetch statement.
备份地址:http://www.lvesu.com/blog/php/function.oci-num-rows.php