oci_num_rows

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

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

描述

oci_num_rows(resource $statement): int|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