2024 年日本 PHP 研討會

oci_fetch_assoc

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

oci_fetch_assoc從查詢結果返回下一列作為關聯式陣列

說明

oci_fetch_assoc(資源 $statement): 陣列|false

傳回一個包含查詢結果集中下一列的關聯式陣列。每個陣列元素對應於該列的一個欄位。此函式通常在迴圈中呼叫,直到它傳回 false,表示沒有更多列存在。

呼叫 oci_fetch_assoc() 等同於使用 OCI_ASSOC + OCI_RETURN_NULLS 呼叫 oci_fetch_array()

參數

statement

oci_parse() 建立並由 oci_execute() 執行的有效 OCI8 陳述式識別碼,或 REF CURSOR 陳述式識別碼。

傳回值

傳回一個關聯式陣列。如果 statement 中沒有更多列,則傳回 false

範例

範例 #1 oci_fetch_assoc() 範例

<?php

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

$stid = oci_parse($conn, 'SELECT department_id, department_name FROM departments');
oci_execute($stid);

while ((
$row = oci_fetch_assoc($stid)) != false) {
echo
$row['DEPARTMENT_ID'] . " " . $row['DEPARTMENT_NAME'] . "<br>\n";
}

oci_free_statement($stid);
oci_close($conn);

?>

備註

注意事項:

更多擷取列的範例,請參閱 oci_fetch_array()

參見

新增註解

使用者貢獻的註解 2 則註解

dbernhardt129 at gmail dot com
14 年前
以下是一個使用 oci_fetch_assoc 函式的簡單範例,供想參考的人使用。

<?php
$oconn
= oci_connect('ora_user','ora_pass','ora_inst');
if (!
$oconn){
$msg = "無法連接到 Oracle ".oci_error();
} else {
$msg = "已連接到 Oracle";
}

$select_stmt = "select username from user_table";

$stid = oci_parse($oconn, $select_stmt);
oci_execute($stid);

echo
"<table border='1'>\n";

while (
$row = oci_fetch_assoc($stid)) {
echo
"<tr>\n";
echo
"<td>". $row["USERNAME"] . "</td>\n";
echo
"</tr>\n";
}

echo
"</table>\n";

oci_free_statement($stid);
oci_close($oconn);
?>

請確定在參考關聯式陣列中的項目時,欄位名稱是大寫的。當然,這只是一個簡單的範例,您可能需要在輸出前對資料進行一些處理,但您可以從這裡了解基本概念。
Dawid Krysiak
10 年前
與 oci_fetch_all() 不同,在使用 oci_fetch_assoc() 之後,LOB 欄位(CLOB、BLOB)不會以字串形式返回,而是以 Oci-Lob 物件形式返回。您必須使用 Oci-Lob->read() 或 load() 方法來讀取欄位內容。
To Top