db2_fetch_both

(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

Descrição

db2_fetch_both(resource $stmt, int $row_number = -1): array|false

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().

Parâmetros

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.

Valor Retornado

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.

Exemplos

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

Veja Também

  • db2_fetch_array() - Retorna um array, indexado pela posição da coluna, representando uma linha em um conjunto de resultados
  • db2_fetch_assoc() - Retorna um array, indexado pelo nome da coluna, representando uma linha em um conjunto de resultados
  • db2_fetch_object() - Retorna um objeto com propriedades que representam colunas na linha buscada
  • db2_fetch_row() - Define o ponteiro do conjunto de resultados para a próxima linha ou linha solicitada
  • db2_result() - Retorna uma única coluna de uma linha no conjunto de resultados