YII の無効に関する問題 HELP HELP HELP HELP HELP HELP!

WBOY
リリース: 2016-06-13 12:01:22
オリジナル
924 人が閲覧しました

YII のものは無効です HELP HELP HELP HELP HELP HELP !!!!!!
親愛なるマスター、エントリーレベルの PHP プログラマーの皆様、助けてください

Yii のもの

公式文書:

<br />       $transaction=$connection->beginTransaction();<br />        try<br />        {<br />            $connection->createCommand($sql1)->execute();<br />            $connection->createCommand($sql2)->execute();<br />            //.... other SQL executions<br />            $transaction->commit();<br />        }<br />        catch(Exception $e)<br />        {<br />            $transaction->rollBack();<br />        }<br />
ログイン後にコピー


独自のカプセル化の書き方:
説明: $this->getDb() は、Yii を介して親クラスによって取得された $connection オブジェクトです
$connection を配置しただけですインスタンス化中にオブジェクトを DB 層に渡し、Db 層で追加、削除、変更、クエリなどの操作を実行します
ただし、DB 層では、exclude() メソッドを実行するときに、オブジェクトが直接挿入されますデータベースが正常に動作しないので解決してください。 ! !
サービス層
<br /> public function addCourseRecommend($courseRecommend,$payWayArray)<br />    {<br />        try{<br />            $connection=$this->getDb();<br />            $transaction=$connection->beginTransaction();<br />            $this->courseRecommendDb= new CourseRecommendDb($connection);<br />            $this->payWayDb=new PayWayDb($connection);<br />            $this->courseRecommendDb->addCourseRecommend($courseRecommend);<br />            foreach($payWayArray as $tempPayWay)<br />            {<br />                $this->payWayDb->addPayWay($tempPayWay);<br />                $tempPayWayRecommend =new PayWayRecommend();<br />                $this->payWayDb->addPayWayRecommend($tempPayWayRecommend);<br />            }<br />            $this->commit($transaction);<br />        }catch (Exception $e){<br />            $this->rollback($transaction);<br />            $this->closeLink();<br />            throw $e;<br />        }<br />        $this->closeLink();<br />    }<br /><br />
ログイン後にコピー

-----解決策-------------------------- ------
しかし、あなたのコードが何をしているのか理解できません
しかし、トランザクションは同じ接続内でのみ有効であることに注意してください
Yii のデータベースは PDO に基づいています。そして、すべての新しい PDO は新しい接続を生成します (これはデータベース拡張機能と個別の関数とは異なります)

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート