Heim >Backend-Entwicklung >PHP-Tutorial >Unterstützt PDO_MYSQL/PDO_MYSQLND mehrere Abfragen in einer einzigen Anweisung?

Unterstützt PDO_MYSQL/PDO_MYSQLND mehrere Abfragen in einer einzigen Anweisung?

Linda Hamilton
Linda HamiltonOriginal
2024-12-26 09:33:10665Durchsuche

Does PDO_MYSQL/PDO_MYSQLND Support Multiple Queries in a Single Statement?

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

Ursprüngliche Frage:

Obwohl man sich des Mangels an PDO bewusst ist Unterstützung für die Ausführung mehrerer Abfragen in einer einzigen Anweisung gibt es Bedenken hinsichtlich der Verfügbarkeit der Unterstützung für diese Funktionalität in PDO_MYSQL und PDO_MYSQLND.

Antwort:

PDO_MYSQL und PDO_MYSQLND verstehen:

PDO_MYSQL wurde abgeschrieben und durch PDO_MYSQLND in PHP ersetzt 5.3. Der Name bleibt jedoch PDO_MYSQL, was ihn zum Standardtreiber für MySQL PDO macht.

Ausführen mehrerer Abfragen mit PDO:

Um mehrere Abfragen gleichzeitig auszuführen, benötigen Sie die Folgendes:

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

Using exec:

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

$db->exec($sql);

Hinweis: Diese Methode ist auf SQL beschränkt, das konstante Werte enthält.

Anweisungen verwenden:

$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"]
);

Loop-Over-Abfrage Ergebnisse:

Denken Sie immer daran, die Abfrageergebnisse nach der Ausführung der Anweisung zu durchlaufen, um auf Fehler zu prüfen oder die Ergebnisse zu sammeln.

Hinweis zu emulierten vorbereiteten Anweisungen:

  • Stellen Sie sicher, dass im DSN die richtige Codierung eingestellt ist, um potenzielle SQL-Injection-Risiken zu vermeiden.
  • Emulieren Vorbereitete Anweisungen können zu einer leichten Leistungseinbuße führen.

Das obige ist der detaillierte Inhalt vonUnterstützt PDO_MYSQL/PDO_MYSQLND mehrere Abfragen in einer einzigen Anweisung?. 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