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.
(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)
oci_fetch_assoc — Devuelve la siguiente fila de una consulta como un array asociativo
Devuelve un array asociativo que contiene la siguiente fila del conjunto de resultados de una consulta.
Cada entrada del array corresponde a una columna de la fila. Esta función
se invoca normalmante en un bucle hasta que devuelve false
, indicando
que no existen más filas.
Llamar a oci_fetch_assoc() es idéntico a
llamar a oci_fetch_array()
con OCI_ASSOC
+ OCI_RETURN_NULLS
.
statement
Un identificador de sentencia
de OCI8 válido creado por oci_parse() y ejecutado
por oci_execute(), o un identificador de sentencia de
REF CURSOR
.
Devuelve un array asociativo. Si no existen más filas en el parámetro
statement
, entonces devuelve false
.
Ejemplo #1 Ejemplo de 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);
?>
Nota:
Véase oci_fetch_array() para más ejemplos de obtención de filas.
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.
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.