4

使用 MySQL 的 PHP PDO 接口,假设我有这段代码来结束事务(假设它已正确开始):

$pdo->query('commit');

当函数返回时,是否刷新了对日志的写入?也就是说,事务是否已提交,还是我只是提出了提交的请求?假设我没有设置任何延迟刷新的选项,例如将 innodb_flush_log_at_trx_commit 设置为零。

我问是因为,如果我要遵循上面的代码:

echo 'Transaction has been committed.';

我不想被谎言抓住。

更新:请参阅下面的评论。我不是在问 InnoDB 是如何工作的。我在问 PDO 接口是否在返回之前等待 InnoDB 引擎执行命令。

更新#2:我应该说提交将通过调用 PDO::commit 来执行,这就是我实际执行的方式,以防万一这与使用 SQL 执行之间有任何区别。

4

0 回答 0