db2_fetch_both

(PECL ibm_db2 >= 1.0.0)

db2_fetch_both Retourne un tableau, indexé par nom de colonne et position, représentant une ligne du jeu de résultats

Description

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

Retourne un tableau, indexé par nom de colonne et position, représentant une ligne du jeu de résultats. Il est à noter que la ligne retournée par db2_fetch_both() nécessite plus de mémoire que les tableaux simplement indexés retournés par db2_fetch_assoc() ou db2_fetch_array().

Liste de paramètres

stmt
Une ressource stmt valide contenant le jeu de résultats.
row_number
Demande une ligne spécifique indexée numériquement qui commence par la valeur 1 dans le jeu de résultats. Fournir ce paramètre génère une alerte PHP si le jeu de résultats utilise un curseur d'avancement seul.

Valeurs de retour

Retourne un tableau associatif avec les valeurs des colonnes indexées par le nom des colonnes et le numéro des colonnes commençant par 0. Le tableau représente la ligne suivante ou la ligne demandée du jeu de résultats. Retourne false s'il n'y a pas de ligne disponible dans le jeu de résultats ou si la ligne demandée par row_number n'existe pas dans le jeu de résultats.

Exemples

Exemple #1 Itération avec un curseur d'avancement seul

Si l'on appelle db2_fetch_both() sans le numéro d'une ligne spécifique, la ligne suivante du jeu de résultats sera automatiquement récupérée. L'exemple suivant accède aux colonnes retournées dans le tableau à la fois par nom de colonne et par indice numérique.

<?php

$sql
= "SELECT id, nom, race, poids FROM animaux ORDER BY race";
$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['RACE'], $row[3]);
}
?>

L'exemple ci-dessus va afficher :

0     Pook             chat                                   3.20
5     Rickety Ride     chèvre                                 9.70
2     Smarty           cheval                               350.00

Exemple #2 Récupération de lignes spécifiques avec db2_fetch_both() provenant d'un curseur flottant

Si le jeu de résultats utilise un curseur flottant, il est possible d'appeler la fonction db2_fetch_both() avec un numéro de ligne spécifique. L'exemple suivant récupère chaque ligne paire dans le jeu de résultats, commençant avec la deuxième ligne.

<?php

$sql
= "SELECT id, nom, race, poids FROM animaux ORDER BY race";
$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['NOM'], $row[2], $row['POIDS']);
$i = $i + 2;
}
?>

L'exemple ci-dessus va afficher :

0     Pook             chat                                   3.20
5     Rickety Ride     chèvre                                 9.70
2     Smarty           cheval                               350.00

Voir aussi

  • db2_fetch_array() - Retourne un tableau, indexé par la position des colonnes, représentant une ligne du jeu de résultats
  • db2_fetch_assoc() - Retourne un tableau, indexé par nom de colonne, représentant une ligne du jeu de résultats
  • db2_fetch_object() - Retourne un objet avec les propriétés représentant des colonnes dans la ligne extraite
  • db2_fetch_row() - Modifie le pointeur du jeu de résultats à la prochaine ligne ou à la ligne demandée
  • db2_result() - Retourne une colonne d'une ligne d'un jeu de résultats