Maison >base de données >tutoriel mysql >Comment puis-je utiliser la valeur d'une colonne comme index pour les résultats de ma requête PDO ?
Utilisation de la valeur d'une colonne comme index dans les résultats à l'aide de PDO
Dans le domaine de la programmation de bases de données, il arrive souvent que les résultats des requêtes aient besoin être indexé différemment de l’approche incrémentielle par défaut. Des scénarios spécifiques comme celui présenté dans cette requête démontrent la nécessité d'une solution plus propre et plus efficace.
La requête :
Notre exemple concerne une table SQL nommée 'marques ' avec les colonnes 'id', 'name' et 'url'. L'ensemble de données contenu à l'intérieur ressemble à ceci :
1, Solidfloor, solidfloor 2, Quickstep, quickstep 4, Cleanfloor, cleanfloor 5, Blue Dolphin, blue-dolphin 6, Krono, krono 8, Meister, meister
Énoncé du problème :
La récupération de tous ces enregistrements aboutit généralement à un tableau avec des indices incrémentiels. Cependant, l'exigence est que ces tableaux soient indexés à l'aide de la colonne « id ». Le bouclage par force brute à travers l'ensemble de résultats est une option viable mais pas optimale.
Solution unique de PDO :
PDO offre une solution remarquable via le PDO : Mode de récupération FETCH_UNIQUE. Lorsqu'il est utilisé, ce mode permet d'indexer les tableaux de résultats par le premier champ défini dans la clause SELECT. Dans notre cas, avec '*' utilisé, ce serait le champ 'id'.
Implémentation du code :
$data = $pdo->query('SELECT * FROM brands')->fetchAll(PDO::FETCH_UNIQUE);
Format de sortie :
En conséquence, vous obtenez un tableau où les indices correspondent aux valeurs 'id'. Par exemple, le résultat ressemblerait à :
1 => array( 'name' => 'Solidfloor', 'url' => 'solidfloor', ), 2 => array( 'name' => 'Quickstep', 'url' => 'quickstep', ), 4 => array( 'name' => 'Cleanfloor', 'url' => 'cleanfloor', )
En utilisant PDO::FETCH_UNIQUE, vous pouvez obtenir avec élégance l'indexation souhaitée sans recourir à des opérations de bouclage fastidieuses.
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!