Heim > Backend-Entwicklung > PHP-Tutorial > Können PDO_MYSQL und PDO_MYSQLND mehrere SQL-Abfragen in einer Anweisung ausführen?

Können PDO_MYSQL und PDO_MYSQLND mehrere SQL-Abfragen in einer Anweisung ausführen?

Linda Hamilton
Freigeben: 2024-12-23 13:22:54
Original
1029 Leute haben es durchsucht

Can PDO_MYSQL and PDO_MYSQLND Execute Multiple SQL Queries in One Statement?

PDO-Unterstützung für mehrere Abfragen (PDO_MYSQL, PDO_MYSQLND)

Trotz der Auffassung, dass PDO nicht mehrere Abfragen in einer einzigen Anweisung unterstützt, bieten PDO_MYSQL und PDO_MYSQLND diese Funktionalität.

PDO_MYSQL und PDO_MYSQLND

PDO_MYSQL wurde in PHP 5.3 durch PDO_MYSQLND ersetzt. Verwirrenderweise bleibt der Name PDO_MYSQL, aber PDO_MYSQLND ist der Standardtreiber für MySQL PDO.

So führen Sie mehrere Abfragen aus

Um mehrere Abfragen gleichzeitig auszuführen, müssen die folgenden Anforderungen erfüllt sein:

  • PHP 5.3 oder höher
  • mysqlnd Erweiterung
  • Emulierte vorbereitete Anweisungen (PDO::ATTR_EMULATE_PREPARES auf 1 gesetzt, was die Standardeinstellung für MySQL ist)

Methoden zum Ausführen mehrerer Abfragen

Verwenden exec:

$db = new PDO("mysql:host=localhost;dbname=test;charset=utf8mb4", 'root', '');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$sql = "DELETE FROM car; 
INSERT INTO car(name, type) VALUES ('car1', 'coupe'); 
INSERT INTO car(name, type) VALUES ('car2', 'coupe');";

$db->exec($sql);
Nach dem Login kopieren

Anweisungen verwenden:

$db = new PDO("mysql:host=localhost;dbname=test;charset=utf8mb4", 'root', '');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$sql = "DELETE FROM car; 
INSERT INTO car(name, type) VALUES (:car1, :type1); 
INSERT INTO car(name, type) VALUES (:car2, :type2);";

$stmt = $db->prepare($sql);
$stmt->execute(["car1" => "brand1", "type1" => "coupe", "car2" => "brand2", "type2" => "coupe"]);

// Check for errors and collect query results
do {
    echo $pdo->lastInsertId(); // for example
} while ($stmt->nextRowset());
Nach dem Login kopieren

Hinweis: Wenn Sie emulierte vorbereitete Anweisungen verwenden, legen Sie die entsprechende Kodierung fest im DSN, um potenzielle SQL-Injection-Schwachstellen zu vermeiden.

Das obige ist der detaillierte Inhalt vonKönnen PDO_MYSQL und PDO_MYSQLND mehrere SQL-Abfragen in einer Anweisung ausführen?. 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