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 執行多個查詢,您需要以下:
使用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中文網其他相關文章!