如何在mysqli和PDO中启动事务?我怎么能承诺呢?我见过两种方法:使用autocommit(false)和begin_transaction方法,但哪一种方法最好?我头疼了! autocommit(false)或begin_transaction?
答案 0 :(得分:1)
你的问题尚不清楚,我还在回答。开始并提交事务很简单。在PDO中,执行以下操作:
<?php
$pdo = // connect to database with PDO
$pdo->beginTransaction();
// query database here
$result = // query result
if($result) {
// if result is okay
$pdo->commit();
} else {
$pdo->rollBack();
}
?>
**说明:**
参考:http://php.net/manual/en/pdo.transactions.php
关于自动提交:在自动提交模式下,每个查询都是一个完整的事务,它会立即执行。默认情况下,PDO会自动提交每个查询。关闭自动提交将需要您手动提交查询。在一般情况下,您不应该将其关闭。
当您需要执行重要查询时,即多部分查询相互依赖于最终结果,例如两个帐户之间的金额转移(您需要从一个表中扣除金额并将其添加到另一个表中) ),简单地开始交易。在提交事务之前,PDO不会执行任何查询。如果出现问题,一切都将回滚到以前的状态。
最后,关闭自动提交和开始交易之间没有任何重大区别。通过开始事务,您可以简化任务,否则您将需要手动提交每个查询,无论其性质如何。
我希望它能回答你的问题。