在 MySQL 中使用事务的想法很好。如果出现问题,能够回滚事务的想法也很好。
我的问题是:在应用程序中,自己控制事务是否值得,还是让 MySQL 为我处理?换句话说,应该对 MySQL 给我的自动提交功能有积极的不信任吗?
例子:
try
{
$mysqli->autocommit( 0 );
//Normally, would go through the steps of prepping and executing etc,
//but I'll use this for brevity.
if( !$mysqli->query( ".." ) )
throw new Exception( ".." );
$mysqli->commit( )
}
catch( Exception $e )
{
$mysqli->rollback( ); //Doing this so I make sure I get my rollback
error_log( ".." );
}
而不是让自动提交功能自己做方便的工作。
注意:我正在编写的应用程序仅设置为一次运行一个查询,不会有任何情况(例如在某些(大多数)银行和其他金融应用程序中)我需要确保两个查询发生变化数据,成功。
这主要是出于控制这类东西的愿望(以及自动提交功能中的某种缺乏)。