Wert einer Spalte als Index in Ergebnissen mit PDO verwenden
Im Bereich der Datenbankprogrammierung kommt es häufig vor, dass Abfrageergebnisse benötigt werden anders als beim standardmäßigen inkrementellen Ansatz indiziert werden. Spezifische Szenarien wie das in dieser Abfrage dargestellte zeigen die Notwendigkeit einer saubereren und effizienteren Lösung.
Die Abfrage:
Unser Beispiel betrifft eine SQL-Tabelle mit dem Namen „brands ' mit den Spalten 'id', 'name' und 'url'. Der darin enthaltene Datensatz sieht folgendermaßen aus:
1, Solidfloor, solidfloor 2, Quickstep, quickstep 4, Cleanfloor, cleanfloor 5, Blue Dolphin, blue-dolphin 6, Krono, krono 8, Meister, meister
Problemstellung:
Das Abrufen aller dieser Datensätze führt normalerweise zu einem Array mit inkrementellen Indizes. Voraussetzung ist jedoch, dass diese Arrays stattdessen mithilfe der Spalte „id“ indiziert werden. Brute-Force-Schleifen durch die Ergebnismenge sind eine praktikable, aber keine optimale Option.
Die einzigartige Lösung von PDO:
PDO bietet eine bemerkenswerte Lösung über das PDO:: FETCH_UNIQUE-Abrufmodus. Bei Verwendung ermöglicht dieser Modus die Indizierung der Ergebnisarrays anhand des ersten in der SELECT-Klausel definierten Felds. In unserem Fall wäre es bei Verwendung von „*“ das Feld „id“.
Code-Implementierung:
$data = $pdo->query('SELECT * FROM brands')->fetchAll(PDO::FETCH_UNIQUE);
Ausgabeformat:
Als Ergebnis erhalten Sie ein Array, in dem die Indizes den „id“-Werten entsprechen. Das Ergebnis würde beispielsweise so aussehen:
1 => array( 'name' => 'Solidfloor', 'url' => 'solidfloor', ), 2 => array( 'name' => 'Quickstep', 'url' => 'quickstep', ), 4 => array( 'name' => 'Cleanfloor', 'url' => 'cleanfloor', )
Durch die Verwendung von PDO::FETCH_UNIQUE können Sie die gewünschte Indizierung elegant erreichen, ohne auf umständliche Schleifenoperationen zurückgreifen zu müssen.
Das obige ist der detaillierte Inhalt vonWie kann ich den Wert einer Spalte als Index für meine PDO-Abfrageergebnisse verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!