[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 メーリングリストの案内