Falls ihr PDO zu Datenbank-abfragen in php nutzt, kann es dazu kommen, dass ihr doppelte Datensätze zurückgeliefert bekommt. Das hat mit der FETCH Option zu tun, mit welcher ihr die Datenbank-abfrage geliefert bekommen möchtet.
Es gibt folgende Fetch Optionen:
- FETCH_ASSOC
Liefert ein assoziatives Array zurück - FETCH_NUM
Liefert ein numerisches Array zurück - FETCH_BOTH
Liefert sowohl ein assoziatives als auch ein nummerisches Array zurück.
In der Praxis sehen die Funktionen wie folgt aus:
$result_get_rows->fetch(PDO::FETCH_ASSOC)
$result_get_rows->fetch(PDO::FETCH_NUM)
$result_get_rows->fetch(PDO::FETCH_BOTH)
In der Grundfunktion wird die Abfrage automatisch mit PDO::FETCH_BOTH geliefert. Das bedeutet, dass sowohl ein numerisches als auch ein assoziatives Array zurück gegeben wird.
Falls ihr nur ein Ergebnis haben möchtet, müsst ihr zur fetch-Funktion auch noch die gewünschte Art mitgeben. Z.B. PDO::FETCH_ASSOC Nachdem ihr das gemacht habt, wird nur noch eine Art von Array zurück gegeben.