[PHP-users 22981]MYSQLトランザクション

Y osaosa acosamu3 @ yahoo.co.jp
2004年 8月 14日 (土) 05:04:52 JST


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