Ich möchte PDO in meiner Anwendung verwenden, aber vorher möchte ich verstehen, wie intern PDOStatement->fetch
und PDOStatement->fetchAll
.Wie funktioniert PHP-PDO intern?
Für meine Anwendung möchte ich etwas wie "SELECT * FROM myTable" tun und in csv-Datei einfügen und es hat rund 90000 Zeilen von Daten.
Meine Frage ist, wenn ich PDOStatement->fetch
benutzen, wie ich es hier bin mit:
// First, prepare the statement, using placeholders
$query = "SELECT * FROM tableName";
$stmt = $this->connection->prepare($query);
// Execute the statement
$stmt->execute();
var_dump($stmt->fetch(PDO::FETCH_ASSOC));
while ($row = $stmt->fetch(PDO::FETCH_ASSOC))
{
echo "Hi";
// Export every row to a file
fputcsv($data, $row);
}
wurde nach jedem aus der Datenbank holen, ergeben sich für das wäre im Speicher ablegen holen?
Bedeutung, wenn ich zweite holen, Speicher hätte Daten des ersten Abrufs sowie Daten für den zweiten Abruf.
Und so, wenn ich 90000 Zeilen von Daten habe und fetch jedes Mal als Speicher aktualisiert wird, um neue Fetch-Ergebnis zu nehmen, ohne Ergebnisse aus früheren Abruf zu entfernen und so für den letzten Abruf Speicher hätte 89999 Zeilen von Daten .
- Funktioniert das wie
PDOStatement::fetch
funktioniert? - Leistung weise, wie funktioniert dieser Stapel gegen
PDOStatement::fetchAll
?
Update: Etwas über zu holen und fetchAll von Speicherauslastung Sicht
einfach etwas, was auf diese Frage hinzugefügt wollte erst etwas gefunden in Bezug auf Abruf und fetchAll, hoffen, dass dies würde diese Frage lohnt Für Leute würde diese Frage in Zukunft besuchen, um ein Verständnis für fetch und fetchAll Parameter zu bekommen.
Fetch speichert keine Informationen im Speicher und es funktioniert Zeile für Zeile, also würde es durch die Ergebnismenge gehen und Zeile 1 zurückgeben, als würde wieder zur Ergebnismenge gehen und dann wieder Zeile 2 Geist hier, dass zurück es wird nicht Zeile 1 und 2 zurückgeben, sondern würde nur Zeile 2 zurückgeben, also wird Fetch nichts im Speicher speichern, aber fetchAll speichert Details in den Speichern. Daher ist fetch im Vergleich zu fetchAll eine bessere Option, wenn es sich um eine resultierende Menge von ungefähr 100 KB handelt.
Ist diese Frage klar oder benötigt sie noch weitere Informationen? – Rachel