Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie kann ich mit einer einzigen vorbereiteten Anweisung mit PDO mehrere Datenzeilen in eine Datenbank einfügen?

Barbara Streisand
Freigeben: 2024-11-06 22:05:02
Original
669 Leute haben es durchsucht

How can I insert multiple rows of data into a database using a single prepared statement with PDO?

Einfügen mehrerer Zeilen mit vorbereiteten PDO-Anweisungen

Das Einfügen mehrerer Datenzeilen in eine Datenbank mit einer einzigen vorbereiteten Anweisung ist möglich. Vorbereitete Anweisungen erhöhen die Sicherheit und Effizienz, indem sie SQL-Injection-Angriffe verhindern und die Abfrageausführung optimieren.

Betrachten Sie das folgende Beispiel für das Einfügen von Daten in eine Tabelle mit dem Namen „Tabelle“ mit den Spalten „col1“, „col2“ und „col3“. :

$params = array();
$params[':val1'] = "val1";
$params[':val2'] = "val2";
$params[':val3'] = "val3";
$sql = "INSERT INTO table VALUES (col1, col2, col3) VALUES (:val1,:val2,:val3)";
$stmt = DB::getInstance()->prepare($sql);
$stmt->execute($params);
Nach dem Login kopieren

Wenn mehrere Zeilen eingefügt werden müssen, kann der folgende Ansatz implementiert werden:

  1. Konstruieren Sie die VALUES-Klausel:Verknüpfen Sie mehrere Wertesätze unter Verwendung von Klammern und Kommas. Werte für drei Zeilen würden beispielsweise so aussehen: ('abc', 'def', 'ghi'), ('abc', 'def', 'ghi'), ('abc', 'def', 'ghi ').
  2. Erstellen Sie die Platzhaltervorlage: Füllen Sie ein Array mit Platzhaltern (?) für jeden einzufügenden Wert. Für drei Zeilen mit jeweils drei Spalten wäre dies (?, ?, ?), (?, ?, ?), (?, ?, ?).
  3. Kombinieren Sie die SQL Anweisung: Hängen Sie die Platzhaltervorlage als VALUES-Klausel an die INSERT-Abfrage an. Die endgültige Anweisung wäre:

    INSERT INTO Table (col1, col2, col3) VALUES (?, ?, ?), (?, ?, ?), (?, ?, ?)
    Nach dem Login kopieren
  4. Vorbereiten und ausführen: Bereiten Sie die erweiterte Anweisung mit PDO vor. Führen Sie die Anweisung aus und übergeben Sie dabei ein Array mit allen einzufügenden Werten in derselben Reihenfolge wie die Platzhalter.

    $rows = array(
                array('abc', 'def', 'ghi'),
                array('abc', 'def', 'ghi'),
                array('abc', 'def', 'ghi')
    );
    
    // Your code here as explained in the full response
    Nach dem Login kopieren

Der Vorteil dieses Ansatzes besteht darin, dass alle Werte in einem zusammengefasst werden einzelne INSERT-Abfrage unter Beibehaltung der Sicherheits- und Optimierungsvorteile vorbereiteter Anweisungen.

Für Szenarien mit einer großen Anzahl von Zeilen kann es effizienter sein, eine Schleife zu verwenden, um diese einzeln einzufügen. Dies sorgt für eine bessere Leistung und vermeidet potenzielle Speicherprobleme.

Das obige ist der detaillierte Inhalt vonWie kann ich mit einer einzigen vorbereiteten Anweisung mit PDO mehrere Datenzeilen in eine Datenbank einfügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!