1

私はcodeigniterを使用しており、次のようなコードを使用しています

$this->db->trans_start(); 
some 5 mysql inserts and 
$this->db->trans_complete();

5 番目のクエリのようなエラー、DB Transaction Failureつまり重複エントリ エラーが発生しています。それでも、最初の 4 つのクエリはすべて実行されます。ロールバックすべきではありませんか?

4

2 に答える 2

0

"Strict Mode"お取引にご利用ください。クエリの 1 つが失敗した場合、他のクエリを自動的にロールバックします。詳細を見るにはここをクリックてください。それがあなたを助けることを願っています。

于 2013-04-17T07:16:31.197 に答える
0

次のようにトランザクションを手動で実行できます。

$this->db->trans_begin();

$this->db->query('AN SQL QUERY...');
$this->db->query('ANOTHER QUERY...');
$this->db->query('AND YET ANOTHER QUERY...');

if ($this->db->trans_status() === FALSE)
{
    $this->db->trans_rollback();
}
else
{
    $this->db->trans_commit();
}
于 2013-04-17T07:37:46.813 に答える