ホームページ  >  記事  >  バックエンド開発  >  PHPのトランザクション処理後のページにジャンプする方法

PHPのトランザクション処理後のページにジャンプする方法

WBOY
WBOYオリジナル
2016-06-13 13:06:58727ブラウズ

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);
??? ?}

?

?

?

?

?

解決策が思いつきません。解決してください。ありがとうございます。 ! !

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:PHP接続アクセス次の記事:PHP接続アクセス