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中文网其他相关文章!