Maison >développement back-end >tutoriel php >Comment récupérer efficacement des paires clé-valeur dans un tableau associatif avec PDO FetchAll ?

Comment récupérer efficacement des paires clé-valeur dans un tableau associatif avec PDO FetchAll ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-22 20:54:02202parcourir

How to Efficiently Retrieve Key-Value Pairs into an Associative Array with PDO FetchAll?

PDO FetchAll : regrouper les paires clé-valeur dans un tableau associatif

Dans les requêtes de base de données qui renvoient des paires clé-valeur, cela est souvent pratique pour récupérer les données sous forme de tableau associatif, avec les valeurs mappées sur leurs clés respectives. Bien qu'il existe des méthodes courantes pour y parvenir, comme l'utilisation de fetchAll(PDO::FETCH_ASSOC) suivie d'une itération manuelle pour créer le tableau, cette approche peut s'avérer fastidieuse.

Une solution alternative, spécialement conçue à cet effet, consiste à utiliser l'option fetchAll(PDO::FETCH_KEY_PAIR). Cette méthode crée automatiquement un tableau associatif avec les résultats de la requête, mappant la première colonne aux clés et la deuxième colonne aux valeurs.

Pour démontrer cela, considérons une requête qui récupère les colonnes de nom et de valeur de la table des paramètres. :

$q = $db->query("SELECT `name`, `value` FROM `settings`;");
$r  = $q->fetchAll(PDO::FETCH_KEY_PAIR);

Dans ce cas, si la base de données contenait des lignes telles que ('first_name', 'Tom') et ('last_name', 'Jeferson'), le tableau $r résultant serait :

Array(
    'first_name' => 'Tom',
    'last_name'  => 'Jeferson'
)

Cette méthode fournit un moyen simple et efficace de récupérer des paires clé-valeur dans un tableau associatif, éliminant ainsi le besoin de création manuelle d'un tableau. Il est pris en charge par les versions PHP modernes et certaines bases de données populaires comme PostgreSQL.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn