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