db2_fetch_both

(PECL ibm_db2 >= 1.0.0)

db2_fetch_both Devolver un arreglo, indexado por el nombre y por la posición de la columna, representando una fila de un bloque de resultados

Descripción

db2_fetch_both ( resource $stmt [, int $row_number = -1 ] ) : array

Devuelve un arreglo, indexado por el nombre y por la posición de la columna, representando una fila de un bloque de resultados. Hay que considerar que la fila devuelta por db2_fetch_both() requiere más memoria que las filas devueltas por db2_fetch_assoc() o db2_fetch_array(), ya que estas últimas sólo devuelven un índice.

Parámetros

stmt

Un recurso stmt válido que contenga los resultados.

row_number

Solicita una fila específica, indexada a partir de uno, del bloque de resultados. Este parámetro provoca una advertencia de PHP si el resultado utiliza cursor de no-recorrido (sólo hacia adelante).

Valores devueltos

Devuelve un arreglo asociativo con las columnas indexadas por el nombre y también por el número de columna (indexada a partir de cero). El arreglo representa la siguiente fila o la fila específica solicitada del bloque de resultados. Devuelve FALSE si no hay más filas en los resultados o si la fila solicitada por row_number no existe entre los resultados.

Ejemplos

Ejemplo #1 Iterando a través de un cursor de no-recorrido (sólo hacia adelante)

Si se llama a db2_fetch_both() sin especificar un número de fila, automáticamente extrae la siguiente fila del bloque de resultados. El siguiente ejemplo accesa a las columnas del arreglo devuelto utilizando tanto los nombres de la columnas como sus posiciones en el índice.

<?php

$sql 
"SELECT id, name, breed, weight FROM animals ORDER BY breed";
$stmt db2_prepare($conn$sql);
$result db2_execute($stmt);

while (
$row db2_fetch_both($stmt)) {
    
printf ("%-5d %-16s %-32s %10s\n"
        
$row['ID'], $row[0], $row['BREED'], $row[3]);
}
?>

El resultado del ejemplo sería:

0     Pook             cat                                    3.20
5     Rickety Ride     goat                                   9.70
2     Smarty           horse                                350.00

Ejemplo #2 Extrayendo filas específicas con db2_fetch_both() a partir de un cursor de recorrido

Si el bloque de resultados utiliza un cursor de recorrido, se puede llamar a db2_fetch_both() con un número específico de fila. El siguiente ejemplo extrae cada fila del bloque de resultados, comenzando por la segunda fila.

<?php

$sql 
"SELECT id, name, breed, weight FROM animals ORDER BY breed";
$result db2_exec($stmt$sql, array('cursor' => DB2_SCROLLABLE));

$i=2;
while (
$row db2_fetch_both($result$i)) {
    
printf ("%-5d %-16s %-32s %10s\n"
        
$row[0], $row['NAME'], $row[2], $row['WEIGHT']);
    
$i $i 2;
}
?>

El resultado del ejemplo sería:

0     Pook             cat                                    3.20
5     Rickety Ride     goat                                   9.70
2     Smarty           horse                                350.00

Ver también

  • db2_fetch_array() - Devolver un arreglo, indexado por la posición de las columnas, que represanta una fila de un bloque de resultados
  • db2_fetch_assoc() - Devolver un arreglo, indexado por el nombre de las columnas, representando una fila del bloque de resultados
  • db2_fetch_object() - Devolver un objeto con atributos que representan a las columnas de una fila extraida
  • db2_fetch_row() - Establecer el apuntador de los resultados hacia la siguiente fila o a la fila solicitada
  • db2_result() - Devolver una columna específica del resultado