PHP Conference Japan 2024

oci_num_rows

(PHP 5、PHP 7、PHP 8、PECL OCI8 >= 1.1.0)

oci_num_rows返回语句执行期间受影响的行数

描述

oci_num_rows(资源 $statement): 整数|false

获取语句执行期间受影响的行数。

参数

statement

有效的 OCI 语句标识符。

返回值

返回受影响的行数(整数),如果失败则返回false

示例

示例 #1 oci_num_rows() 示例

<?php

$conn
= oci_connect("hr", "hrpwd", "localhost/XE");
if (!
$conn) {
$m = oci_error();
trigger_error(htmlentities($m['message']), E_USER_ERROR);
}

$stid = oci_parse($conn, "create table emp2 as select * from employees");
oci_execute($stid);
echo
oci_num_rows($stid) . " rows inserted.<br />\n";
oci_free_statement($stid);

$stid = oci_parse($conn, "delete from emp2");
oci_execute($stid, OCI_DEFAULT);
echo
oci_num_rows($stid) . " rows deleted.<br />\n";
oci_commit($conn);
oci_free_statement($stid);

$stid = oci_parse($conn, "drop table emp2");
oci_execute($stid);
oci_free_statement($stid);

oci_close($conn);

?>

注释

注意:

此函数不会返回选定的行数!对于 SELECT 语句,此函数将返回使用 oci_fetch*() 函数提取到缓冲区中的行数。

添加注释

用户贡献的注释 2 条注释

vihanga dot kule99 at gmail dot com
1 年前
`oci_num_rows()` 函数用于检索使用 OCI8 扩展执行的 Oracle 数据库查询所影响或返回的行数。以下是 `oci_num_rows()` 的工作原理说明

1. 语法
php
oci_num_rows($statement);

2. 参数
$statement:此参数表示由 `oci_parse()` 返回并使用 `oci_execute()` 执行的 Oracle 语句句柄。它指的是您要获取行数的已执行查询或语句。

3. 返回值
`oci_num_rows()` 函数返回已执行查询所影响或返回的行数。它返回一个表示行计数的整数值。

4. 用法
在使用 `oci_execute()` 执行查询后,您可以使用 `oci_num_rows()` 来确定查询所影响或返回的行数。
- 它通常用于需要了解结果集的行数或 INSERT、UPDATE 或 DELETE 操作后受影响的行数的场景。

演示 `oci_num_rows()` 用法的示例

php
$sql = "SELECT * FROM employees";
$statement = oci_parse($connection, $sql);
oci_execute($statement);

// 获取查询返回的行数
$numRows = oci_num_rows($statement);
echo "Number of rows: " . $numRows;

在此示例中,我们执行一个 SELECT 查询以从“employees”表中提取记录。在使用 `oci_execute()` 执行查询后,我们使用 `oci_num_rows()` 检索查询返回的行数并将其存储在 `$numRows` 变量中。最后,我们回显行计数。
pluueer at hotmail dot com
14 年前
如果您想在不获取所有数据的情况下返回行数,使用以下代码可能会更高效(如果我错了请纠正我)

$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;
To Top