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:
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.
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