PHP : fetch_assoc(),fetch_array() et fetch_row()

Ces trois méthodes sont utilisées pour récupérer les résultats d’une requête SQL à partir d’un objet de résultat retourné par une fonction d’exécution de requête dans PHP.

  • fetch_assoc(): Cette méthode retourne une ligne de résultats sous forme de tableau associatif. Le tableau contient des paires clé-valeur où la clé est le nom de la colonne de la base de données et la valeur est la valeur correspondante de cette colonne dans la ligne de résultat. Par exemple, si votre requête récupère les colonnes ‘id’ et ‘nom’, fetch_assoc() retournera un tableau avec les clés ‘id’ et ‘nom’.
  • fetch_array(): Cette méthode retourne une ligne de résultats sous forme de tableau indexé et associatif. Le tableau contient des éléments indexés numériquement pour chaque colonne de la base de données, ainsi que des paires clé-valeur associées pour chaque colonne. Par défaut, fetch_array() retourne un tableau avec des éléments indexés numériquement, mais si vous passez la constante MYSQLI_ASSOC ou MYSQLI_BOTH comme argument, la méthode renverra un tableau associatif ou un tableau indexé et associatif, respectivement.
  • fetch_row(): Cette méthode retourne une ligne de résultats sous forme de tableau indexé numériquement. Les éléments du tableau correspondent à chaque colonne de la ligne de résultat dans l’ordre dans lequel elles ont été sélectionnées dans la requête SQL. Par exemple, si votre requête récupère les colonnes ‘id’ et ‘nom’, fetch_row() retournera un tableau avec les éléments $row[0] et $row[1] pour l’id et le nom, respectivement.

Voici des exemples d’utilisation de chacune de ces méthodes :

// Connexion à la base de données
$mysqli = new mysqli('localhost', 'utilisateur', 'mot_de_passe', 'ma_base_de_données');

// Vérifier la connexion
if ($mysqli->connect_errno) {
    echo 'Erreur de connexion à la base de données : ' . $mysqli->connect_error;
    exit;
}

// Exécuter une requête SQL
$result = $mysqli->query('SELECT id, nom, email FROM utilisateurs');

// Récupérer les résultats sous forme de tableau associatif
// Avec fetch_assoc()
while ($row = $result->fetch_assoc()) {
    echo 'ID : ' . $row['id'] . '<br>';
    echo 'Nom : ' . $row['nom'] . '<br>';
    echo 'Email : ' . $row['email'] . '<br>';
}
// Avec fetch_array
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
    echo 'ID : ' . $row['id'] . '<br>';
    echo 'Nom : ' . $row['nom'] . '<br>';
    echo 'Email : ' . $row['email'] . '<br>';
}
// Avec fetch_row()
while ($row = $result->fetch_row()) {
    echo 'ID : ' . $row[0] . '<br>';
    echo 'Nom : ' . $row[1] . '<br>';
    echo 'Email : ' . $row[2] . '<br>';
}

// Libérer les ressources
$result->close();
$mysqli->close();

Dans cet exemple, nous avons établi une connexion à la base de données à l’aide de la classe mysqli, puis exécuté une requête SQL pour récupérer les colonnes « id », « nom » et « email » de la table « utilisateurs ». Ensuite, nous avons récupéré les résultats de la requête en utilisant fetch_assoc() pour afficher les données dans le navigateur.

Dans cet exemple, nous avons utilisé la constante MYSQLI_ASSOC pour obtenir un tableau associatif avec les données de chaque ligne de résultat. Les clés du tableau correspondent aux noms des colonnes dans la base de données.

Dans cet exemple, nous avons utilisé fetch_row() pour obtenir un tableau indexé numériquement avec les données de chaque ligne de résultat. Les éléments du tableau correspondent aux colonnes sélectionnées dans la requête SQL, dans l’ordre où elles ont été sélectionnées. Dans cet exemple, la première colonne est « id », donc nous utilisons $row[0] pour afficher la valeur correspondante de cette colonne.

Notez que nous avons également fermé les ressources utilisées (résultat et connexion) à la fin de notre script pour éviter des problèmes de mémoire et de performance.