Heim  >  Artikel  >  Datenbank  >  Warum gibt mein PDO Prepared Statement Fetch() doppelte Ergebnisse zurück?

Warum gibt mein PDO Prepared Statement Fetch() doppelte Ergebnisse zurück?

Barbara Streisand
Barbara StreisandOriginal
2024-11-03 02:43:30573Durchsuche

Why Does My PDO Prepared Statement Fetch() Return Double Results?

PDO Prepared Statement Fetch() gibt doppelte Ergebnisse zurück

Bei der Verwendung von PDO Prepared Statements können die mit der fetch()-Methode erhaltenen Ergebnisse manchmal abweichen scheinen dupliziert zu sein. Dies geschieht, wenn die gewünschten Daten zweimal pro Zeile abgerufen werden, was zu einer doppelten Anzahl von Spalten in der Ausgabe führt.

Dieses Problem tritt auf, wenn die Daten mit dem Standardmodus PDO::FETCH_BOTH abgerufen werden, der Ergebnisse abruft indiziert sowohl nach Spaltenname als auch nach Spaltennummer. Um diese Duplizierung zu verhindern, geben Sie einen alternativen Abrufstil an, z. B.:

  • PDO::FETCH_ASSOC: Gibt ein nach Spaltennamen indiziertes Array zurück und vermeidet so die durch die Spaltennummer verursachte Duplizierung index.
  • PDO::FETCH_NUM: Gibt ein nach Spaltennummer indiziertes Array zurück, sodass keine Indizierung des Spaltennamens erforderlich ist.

Durch Verwendung eines dieser Abrufe In den Modi können Sie die richtige Anzahl von Spalten für jede Zeile abrufen und so sicherstellen, dass die Ausgabe wie beabsichtigt angezeigt wird.

Hier ist ein Beispiel für die Verwendung von PDO::FETCH_ASSOC:

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

Dieser Code ruft die Daten als assoziatives Array ab und eliminiert die doppelten Spalten.

Das obige ist der detaillierte Inhalt vonWarum gibt mein PDO Prepared Statement Fetch() doppelte Ergebnisse zurück?. 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