首頁 >後端開發 >php教程 >如何在 PHP 中使用 PDO 執行多個查詢?

如何在 PHP 中使用 PDO 執行多個查詢?

Barbara Streisand
Barbara Streisand原創
2024-12-25 16:27:10226瀏覽

How Can I Execute Multiple Queries with PDO in PHP?

PDO 支援多個查詢:PDO_MYSQL 和 PDO_MYSQLND

傳統的 PDO 本身不支援在單一語句中執行多個查詢。但是,開發了 PDO_MYSQL 和 PDO_MYSQLND 來解決此限制。

PDO_MYSQL 和 PDO_MYSQLND

PDO_MYSQL 現在已被視為已棄用。事實上,從 PHP 5.3 開始,MySQL PDO 就預設使用 PDO_MYSQLND 驅動。

使用PDO 執行多個查詢

要使用PDO 執行多個查詢,您需要以下:

  • PHP 5.3
  • PDO_MYSQLND 驅動程式(作為預設MySQL驅動程序提供)
  • 模擬準備語句(PDO::ATTR_EMULATE_PREPARES 設置為1)

使用exec

對於帶有常量的SQL 查詢值時,可以使用exec()方法:

$db->exec("
    DELETE FROM car;
    INSERT INTO car(name, type) VALUES ('car1', 'coupe');
    INSERT INTO car(name, type) VALUES ('car2', 'coupe');
");

使用準備好的語句

對於來自PHP 變數的資料的查詢,需要準備好的語句:

$stmt = $db->prepare("
    DELETE FROM car;
    INSERT INTO car(name, type) VALUES (:car1, :type1);
    INSERT INTO car(name, type) VALUES (:car2, :type2);
");

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

while ($stmt->nextRowset()) {
    echo $db->lastInsertId();
}

請注意,在這兩種情況下,都必須設定PDO::ATTR_EMULATE_PREPARES使用多個查詢時為1。

編碼注意

使用模擬準備語句時,請確保在 DSN 中指定正確的編碼,以防止潛在的 SQL 注入漏洞。

以上是如何在 PHP 中使用 PDO 執行多個查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn