1
我想在我的代码的某些关键区域使用交易,但实际上并不适合我所做的一切。 我刚刚了解到AUTOCOMMIT值默认设置为1,如果我想要START TRANSACTION和COMMIT或ROLLBACK,我应该将它设置为0。MYSQL交易的问题,用PHP
- 有没有更好的方法来处理自动提交?
- 我怎么知道它是否设置?
- 在加载的每个页面上它的值是否更改为AUTOCOMMIT = 1?
我想在我的代码的某些关键区域使用交易,但实际上并不适合我所做的一切。 我刚刚了解到AUTOCOMMIT值默认设置为1,如果我想要START TRANSACTION和COMMIT或ROLLBACK,我应该将它设置为0。MYSQL交易的问题,用PHP
使用PDO
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->beginTransaction();
try {
// do stuff
$pdo->commit();
} catch (Exception $ex) {
$pdo->rollBack();
throw $ex;
}
谢谢,我正在读关于PDO,我想我会使用它的时间。但是现在情况如此,您是否会说我的ROLLBACK()和COMMIT()函数在我的START_TRANSACTION()和AUTOCOMMIT = 0上定义了AUTOCOMMIT = 1是一种解决方法? – Ted
@泰德,请使用最好的工具。现在,该工具是PDO – Phil
'$ pdo-> beginTransaction()'本身需要一个try ... catch块。因为可能发生事务已经存在,并且要求在不支持嵌套事务的引擎上启动新事务可能导致触发错误 – Sudhi