PHP Conference Japan 2024

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