„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Warum gibt meine vorbereitete PDO-Anweisung beim Abrufen von Daten in eine CSV-Datei doppelte Ergebnisse zurück?

Warum gibt meine vorbereitete PDO-Anweisung beim Abrufen von Daten in eine CSV-Datei doppelte Ergebnisse zurück?

Veröffentlicht am 08.11.2024
Durchsuche:883

Why is my PDO prepared statement returning double results when fetching data into a CSV file?

PDO-vorbereitete Anweisung ruft doppelte Ergebnisse ab

Ein Benutzer ist auf ein Problem gestoßen, bei dem seine PDO-vorbereitete Anweisung doppelte Ergebnisse zurückgibt, wenn Daten an a ausgegeben werden CSV-Datei. Der betreffende Code verwendet die Funktion $result_get_rows->fetch(), um die Zeilen aus der Datenbank abzurufen.

Die Fetch()-Methode verstehen

Die fetch() Die Methode eines PDOStatement-Objekts wird zum Abrufen von Zeilen aus einer Ergebnismenge verwendet. Standardmäßig werden Zeilen sowohl als indizierte Arrays (nach Spaltennummer) als auch als assoziative Arrays (nach Spaltennamen) zurückgegeben.

Problem lösen

Um die doppelten Ergebnisse zu korrigieren , wird empfohlen, mithilfe des fetch_style-Parameters der fetch()-Methode anzugeben, wie die Ergebniszeilen zurückgegeben werden sollen. Dieser Parameter akzeptiert eine der folgenden Konstanten:

  • PDO::FETCH_ASSOC: Gibt ein nach Spaltennamen indiziertes assoziatives Array zurück.
  • PDO::FETCH_NUM: Gibt ein nach Spalte indiziertes indiziertes Array zurück number.
  • PDO::FETCH_BOTH (Standard): Gibt ein von beiden indiziertes Array zurück Spaltenname und Spaltennummer.

Geänderter Code

Mit PDO::FETCH_ASSOC kann der Code wie folgt geändert werden:

while ($rows_get_rows = $result_get_rows->fetch(PDO::FETCH_ASSOC)) {
  $csv .= '"'.join('","', str_replace('"', '""', $rows_get_rows))."\"\n";
}

Diese Änderung stellt sicher, dass die Zeilen als assoziative Arrays zurückgegeben werden, wodurch die Duplizierung von Werten bei der Ausgabe in die CSV-Datei effektiv verhindert wird.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3