MySQLでトランザクションを使う考えは良いです。何かがうまくいかなかった場合にトランザクションをロールバックできるという考えも良いことです。PHPと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("..");
}
は、それ自身の便利な作業を行います。
注:私が書いているアプリケーションは、一度に1つのクエリを実行するように設定されているだけで、(ほとんどの)銀行やその他の金融アプリケーションのような状況はありません。データを変更する2つのクエリは成功します。
これは主に、そのような種類のもの(および自動コミット機能では特定の欠点)を制御したいという理由から生まれたものです。
質問:達成したいのは何ですか? – middus