首页 >后端开发 >php教程 >PDO_MYSQL/PDO_MYSQLND 是否支持单个语句中的多个查询?

PDO_MYSQL/PDO_MYSQLND 是否支持单个语句中的多个查询?

Linda Hamilton
Linda Hamilton原创
2024-12-26 09:33:10723浏览

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

PDO 对多个查询的支持(PDO_MYSQL、PDO_MYSQLND)

原始问题:

尽管意识到 PDO 缺乏支持在单个语句中执行多个查询,但人们对支持的可用性提出了担忧PDO_MYSQL 和 PDO_MYSQLND 中具有此类功能。

答案:

了解 PDO_MYSQL 和 PDO_MYSQLND:

PDO_MYSQL 已被折旧并替换为PHP 中的 PDO_MYSQLND 5.3.但是,名称仍然是 PDO_MYSQL,使其成为 MySQL PDO 的默认驱动程序。

使用 PDO 执行多个查询:

要一次执行多个查询,您需要以下:

  • PHP 5.3 或更高
  • MySQLND
  • 模拟准备语句(PDO::ATTR_EMULATE_PREPARES 设置为 1,这是 MySQL 的默认值)

使用exec:

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

$db->exec($sql);

注意:此方法仅限于包含常量值的 SQL。

使用语句:

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

循环查询结果:

执行语句后始终记住循环查询结果以检查错误或收集结果。

有关模拟准备语句的注意事项:

  • 确保在 DSN 中设置正确的编码以避免潜在的 SQL 注入风险。
  • 模拟准备好的语句可能会带来轻微的性能损失。

以上是PDO_MYSQL/PDO_MYSQLND 是否支持单个语句中的多个查询?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn