Heim  >  Artikel  >  Datenbank  >  Warum dupliziert mein PDO Prepared Statement Fetch() die Ergebnisse?

Warum dupliziert mein PDO Prepared Statement Fetch() die Ergebnisse?

Barbara Streisand
Barbara StreisandOriginal
2024-11-01 20:47:30281Durchsuche

Why is my PDO Prepared Statement Fetch() Duplicating Results?

PDO Prepared Statement Fetch() dupliziert Ergebnisse

Problem

Ein PHP-Skript, das PDO Prepared Statements und fetch() verwendet gibt doppelte Daten in eine CSV-Datei aus. Jede Zeile aus der Datenbank wird zweimal wiedergegeben, was zu doppelten Spaltenwerten führt.

Analyse

Zuvor funktionierte die Abfrage wie erwartet, wenn PDO nicht verwendet wurde. Daher kann das Problem in der Verwendung von fetch() liegen.

Lösung

Durch Angabe des gewünschten Datenabrufmodus beim Aufruf von fetch() kann das Problem mit doppelten Ergebnissen gelöst werden. Es gibt zwei Optionen:

  • PDO::FETCH_ASSOC: Gibt ein durch die Spaltennamen indiziertes Array zurück.
  • PDO::FETCH_NUM: Gibt ein durch die Spaltennummern indiziertes Array zurück.

Um dies zu implementieren, ändern Sie den Code wie folgt:

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

Das obige ist der detaillierte Inhalt vonWarum dupliziert mein PDO Prepared Statement Fetch() die Ergebnisse?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn