[PHP-users 22986]Re: MYSQLトランザクション

Yuji Soga soga @ y-net.co.jp
2004年 8月 16日 (月) 10:42:51 JST


曽我と申します

SQLでSet AutoCommit = 0 を設定してみたらどうですか

下記に参考情報が載っています
http://dev.mysql.com/doc/mysql/ja/COMMIT.html



> MYSQLは、トランザクションでrollbackできないようなのです
> が、(バージョン:mySQL 3.23.56)下記のようなphpのスクリ
> プト上で動かしてもうまくいきません。他に回避策ありません
> でしょうか??
>
> たとえば、
> // DBに接続
> $self_url = $_SERVER['PHP_SELF'];
> $con = mysql_connect("$db_host", "$db_id", "$db_pass");
> if(!$con){
>  $error_flg = "1";
>  exit;
> }
> else{ ; }
> if(!mysql_select_db("$db_name")){ array_push($e_list,'只
> 今大変混雑しております。暫くしてからアクセスしなおして下
> さい。'); $error_flg = "1"; }else{ ; }
> mysql_query('BEGIN',$con);    //ここでトランザクションス
> タート
>
> SQL文を複数実行(エラーがあった場合は、$error_flg = "1"
> とする)
>
> if($error_flg == "1"){
> mysql_query("ROLLBACK",$con);
> error_msg("システムエラー");
> exit;
> }else{
> mysql_query("COMMIT",$con);
> }
> mysql_close($con);
>
> で試してみても、あるSQL文でエラーが起こっても、エラーの
> 起こらないSQL文は実行されてしまい、ロールバックできませ
> んでした。皆さんは、どういった対処で回避されてますか??
>
>
> _______________________________________________
> PHP-users mailing list  PHP-users @ php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://www.php.gr.jp/php/novice.php3
>
>



PHP-users メーリングリストの案内