php - PDO 事务是否涵盖 PDO::query()?

标签 php mysql transactions pdo

位于 PHP.net 的 PDO 交易示例表明 PDO::exec() 是事务处理的,但是没有这样的例子使用 PDO::query()

事务是否涵盖 PDO::query()

此外,据我所知,PDO::query() 返回一个结果集。如果是事务处理的,怎么会有结果集,因为语句在提交之前不应该执行? (这是否意味着 PDO::query() 确实是 not 交易?)我似乎找不到官方引用资料来说明它是否是.

最佳答案

您误解了交易。事务只是保证操作是原子的:要么所有操作都成功,要么都不成功。一旦你开始一个事务,每个查询都会被执行,并且它会被记录在事务日志中。如果操作失败并且您回滚,则每个操作都将被还原。

也就是说:查询是否可事务并不取决于您使用的是 exec 还是 query,而是取决于查询类型。 INSERTUPDATEDELETE 是事务性的,其他操作(例如 ALTER TABLE)可能是也可能不是事务性的,取决于您的 DBMS。

关于php - PDO 事务是否涵盖 PDO::query()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11383010/

相关文章:

c# - 如何回滚 Entity Framework 中的事务

java - 如何在交易过程中获得用户确认?

php - Paypal 错误错误代码: 580022 paypal adaptive parallel payment

php - PHP 中的动态错误报告

javascript - 通过表单将唯一的 PHP 变量传递给 Javascript

php - 错误的utf8编码导出Mysql数据库

java - 如何解决servlet类和jsp.file之间传递属性时出现空指针异常

mysql - SQL SERVER 2012 如果存在和如果不存在

PHPExcel 未插入 MySQL 数据库

mysql - Django 1.5 Mysql 5.5(InnoDb)事务在异常中不回滚