©
This document uses PHP Chinese website manual Release
(PHP 5, PECL OCI8 >= 1.1.0)
oci_fetch_assoc — Returns the next row from a query as an associative array
$statement
)
Returns an associative array containing the next result-set row of a query.
Each array entry corresponds to a column of the row. This function
is typically called in a loop until it returns FALSE
, indicating
no more rows exist.
Calling oci_fetch_assoc() is identical to
calling oci_fetch_array()
with OCI_ASSOC
+ OCI_RETURN_NULLS
.
statement
有效的 OCI8 报表标识符 由 oci_parse() 创建,被 oci_execute() 或 REF CURSOR statement 标识执行。
Returns an associative array. If there are no more rows in
the statement
then FALSE
is returned.
Example #1 oci_fetch_assoc() Example
<?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 );
?>
Note:
See oci_fetch_array() for more examples of fetching rows.
[#1] Dawid Krysiak [2014-01-03 13:31:42]
Unlike oci_fetch_all(), after using oci_fetch_assoc(), LOB columns (CLOB, BLOB) are NOT returned as strings but as Oci-Lob objects. You have to use Oci-Lob->read() or load() method in order to read column content.
[#2] dbernhardt129 at gmail dot com [2010-10-06 14:11:12]
Here's a simple example of using the oci_fetch_assoc function for anyone who would like to see it.
<?php
$oconn = oci_connect('ora_user','ora_pass','ora_inst');
if (!$oconn){
$msg = "Cannot connect to Oracle ".oci_error();
} else {
$msg = "Connected to 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);
?>
Make sure you capitalize the column name for referencing the item in the associative array. Of course, this is just a simple example and you might want to do some processing on the data prior to output, but you get the idea here.