(PECL ibm_db2 >= 1.0.0)
db2_fetch_both — Retorna um array, indexado pelo nome da coluna e pela posição, representando uma linha em um conjunto de resultados
Retorna um array, indexado pelo nome da coluna e pela posição, representando uma linha em um conjunto de resultados. Observe que a linha retornada por db2_fetch_both() requer mais memória do que os arrays de índice único retornados por db2_fetch_assoc() ou db2_fetch_array().
stmt
Um recurso stmt
válido contendo um conjunto de resultados.
row_number
Solicita uma linha específica indexada em 1 do conjunto de resultados. Passar este parâmetro resulta em um aviso do PHP se o conjunto de resultados usar um cursor somente de avanço.
Retorna um array associativo com valores de coluna indexados pelo nome da coluna
e pelo número da coluna indexada em 0. O array representa a próxima linha ou
a linha solicitada no conjunto de resultados. Retorna false
se não houver linhas restantes
no conjunto de resultados, ou se a linha solicitada por
row_number
não existir no conjunto de resultados.
Exemplo #1 Iterando por um cursor somente de avanço
Se db2_fetch_both() for chamada sem um número de linha específico, ela recupera automaticamente a próxima linha no conjunto de resultados. O exemplo a seguir acessa colunas no array retornado pelo nome da coluna e pelo índice numérico.
<?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]);
}
?>
O exemplo acima produzirá:
0 Pook cat 3.20 5 Rickety Ride goat 9.70 2 Smarty horse 350.00
Exemplo #2 Recuperando linhas específicas com db2_fetch_both() a partir de um cursor rolável
Se o conjunto de resultados usar um cursor rolável, db2_fetch_both() pode ser chamada com um número de linha específico. O exemplo a seguir recupera todas as outras linhas no conjunto de resultados, começando com a segunda linha.
<?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;
}
?>
O exemplo acima produzirá:
0 Pook cat 3.20 5 Rickety Ride goat 9.70 2 Smarty horse 350.00