PHPのトランザクション処理後のページにジャンプする方法
Smarty テンプレートを使用していますが、途中でトランザクションが必要になります。データベースに 2 つのデータを同時に挿入したいのですが、成功した場合は成功し、失敗した場合は失敗する必要があります。
最初は mysql_query('begin');
を使用しました。??????????????????mysql_query($sql);
??????????????????mysql_query($sql);
次に、if 判定を行い、両方が true の場合はコミットし、そうでない場合はロールバックします。最後に
?????????????????? mysql_query('end');
しかし、endの後にphpのページにジャンプしたいのですが、endを追加するとend以降のphpのコードは実行されず、データの追加が成功したかどうかに関係なくページはうまくジャンプしません。
?
?
?
その後、set autocommit???を使用して自動送信を手動に設定しましたが、状況は上記と同じでした。 。 。
?
?
その後、グローバル変数を定義するメソッドを作成し、そのグローバル変数を使用してそれが成功したかどうかを判断しようとしましたが、メソッド内でグローバル変数の値が実際に変更されましたが、その後その値が渡されませんでした。メソッドは終了しました。var_dump($tranResult) を使用する場合、値は常に空白になります。 。 。 。 。 。
?
???関数 tranType1($type,$product_name,$pic_name,$name,$diameter,$capacity,$pic){
??? ??? グローバル $tranResult;
?????????
??? ???? $this->db->query('begin');
??? ???? ??? $main_id = $this->addInfoTable1($type,$product_name,$pic_name);?? //これら 2 つは情報を追加するために作成したメソッドであり、戻り値は mysql_insert_id です()
??? ???? ??? $addTab2 = $this->addInfoTub($main_id,$name,$capacity);
??? ???? ??? if(($main_id !== false) && ($addTab2 !== false) ){
??? ??? $upPic = $this->checkPic($pic);
??? ??? if($upPic)
??? ??? $this->db-> ???
??? ??? $tranResult =
??? ??? //var_dump($tranResult);
??? ??? }その他{
??? ??? $this->db->クエリ('ロールバック');
??? ??? }
??? ??? }その他{
??? ??? ?$this->db->クエリ('ロールバック');
??? ??? }
??????
??? $this->db->クエリ('end');
??? ??? var_dump($tranResult);
??? ?}
?
?
?
?
解決策が思いつきません。解決してください。ありがとうございます。 ! !