Manuel PHP
Précédent |  | Suivant

# db2_fetch_row

(PECL)

db2_fetch_row -- Modifie le pointeur du jeu de résultat à la prochaine ligne ou à la ligne demandée

## Description

bool db2_fetch_row ( resource stmt [, int row_number] )

Utilisez db2_fetch_row() pour itérer à travers un jeu de résultats ou pour pointer à une ligne spécifique d'un jeu de résultats si vous avez demandé un curseur flottant.

Pour obtenir des champs individuels du jeu de résultats, appelez la fonction db2_result().

Au lieu d'appeler les fonctions db2_fetch_row() et db2_result(), la plupart des applications vont appeler la fonction db2_fetch_assoc(), db2_fetch_both() ou db2_fetch_array() pour avancer le pointeur dans le jeu de résultats et retourner une ligne complète en tant que tableau.

## Liste de paramètres

`stmt`

  Une ressource `stmt` valide contenant le jeu de résultats.

`row_number`

  Avec des curseurs flottants, vous pouvez demander un numéro de ligne spécifique du jeu de résultats. Les numéros des lignes commencent par l'indice 1

## Valeurs de retour

Retourne `TRUE` si la ligne demandée existe dans le jeu de résultats. Retourne `FALSE` si la ligne demandée n'existe pas dans le jeu de résultats.

## Exemples

Exemple 1. Itère à travers un jeu de résultats

L'exemple suivant démontre comment itérer à travers un jeu de résultats avec la fonction db2_fetch_row() et récupérer les colonnes du jeu de résultats avec db2_result().

`<?php $sql = 'SELECT nom, race FROM animaux WHERE poids < ?'; $stmt = db2_prepare($conn, $sql); db2_execute($stmt, array(10)); while (db2_fetch_row($stmt)) { $nom = db2_result($stmt, 0); $race = db2_result($stmt, 1); print "$nom $race"; } ?>`

L'exemple ci-dessus va afficher :

    chat Pook
    cyprin doré Bubbles
    perruche Gizmo
    chèvre Rickety Ride

Exemple 2. Alternatives recommandées i5/OS pour db2_fetch_row/db2_result

Sur i5/OS, il est recommandé que vous utilisiez db2_fetch_both(), db2_fetch_array() ou db2_fetch_object() au lieu de db2_fetch_row()/db2_result(). En général db2_fetch_row()/db2_result() a plus de problèmes avec des types de colonne variés dans la traduction de `EBCIDIC` à `ASCII`, en incluant de possible troncature dans les applications `DBCS`. Vous pourriez aussi trouver une performance d'utiliser db2_fetch_both(), db2_fetch_array() et db2_fetch_object() à utiliser db2_fetch_row()/db2_result().

`<?php
$conn = db2_connect("","","");
$sql = 'SELECT SPECIFIC_SCHEMA, SPECIFIC_NAME, ROUTINE_SCHEMA, ROUTINE_NAME, ROUTINE_TYPE, ROUTINE_CREATED, ROUTINE_BODY, IN_PARMS, OUT_PARMS, INOUT_PARMS, PARAMETER_STYLE, EXTERNAL_NAME, EXTERNAL_LANGUAGE FROM QSYS2.SYSROUTINES FETCH FIRST 2 ROWS ONLY';
$stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
while ($row = db2_fetch_both($stmt)){
echo "<br>db2_fetch_both {$row['SPECIFIC_NAME']} {$row['ROUTINE_CREATED']} {$row[5]}";
}
$stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
while ($row = db2_fetch_array($stmt)){
echo "<br>db2_fetch_array {$row[1]} {$row[5]}";
}
$stmt = db2_exec($conn, $sql, array('cursor' => DB2_SCROLLABLE));
while ($row = db2_fetch_object($stmt)){
echo "<br>db2_fetch_object {$row->SPECIFIC_NAME} {$row->ROUTINE_CREATED}";
}
db2_close($conn);
?>`

L'exemple ci-dessus va afficher :

    db2_fetch_both MATCH_ANIMAL 2006-08-25-17.10.23.775000 2006-08-25-17.10.23.775000
    db2_fetch_both MULTIRESULTS 2006-10-17-10.11.05.308000 2006-10-17-10.11.05.308000
    db2_fetch_array MATCH_ANIMAL 2006-08-25-17.10.23.775000
    db2_fetch_array MULTIRESULTS 2006-10-17-10.11.05.308000
    db2_fetch_object MATCH_ANIMAL 2006-08-25-17.10.23.775000
    db2_fetch_object MULTIRESULTS 2006-10-17-10.11.05.308000

## Voir aussi

db2_fetch_array()
db2_fetch_assoc()
db2_fetch_both()
db2_fetch_object()
db2_result()

Précédent | Sommaire | Suivant
db2_fetch_object | Niveau supérieur | db2_field_display_size