PHP を使用してプロジェクトで SQL ステートメントを実行するために beginTransaction() を使用することに成功しました。データベースに書き込む必要があるアイテムの配列があり、各アイテムは保存する前に何かに対して検証する必要があります。データベースの自動コミット動作をオフにする利点の 1 つは、途中で何か問題が発生した場合に、トランザクション全体をロールバックできることです。私のプロジェクトでは、1 つのアイテムが無効な場合、配列全体をデータベースに記録するべきではありません。そのため、このアプローチを使用することにしました。
今、私はこれが本当にパフォーマンスの面でより良い方法であるかどうか疑問に思っていますか? 配列の最後の項目が検証されたとしても、以前の実行を手動で commit() する必要があるためです。コミットはSQLの実行を繰り返しますか?
私が今思いつく唯一の利点は、それらをすべて検証して (すべての項目が有効であると仮定して)、それぞれを書きたい場合に、2 回ではなく 1 回のループで済むことです。