2024 年日本 PHP 研討會

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) . " 列資料已插入。<br />\n";
oci_free_statement($stid);

$stid = oci_parse($conn, "delete from emp2");
oci_execute($stid, OCI_DEFAULT);
echo
oci_num_rows($stid) . " 列資料已刪除。<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 "列數:" . $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