ホームページ  >  記事  >  バックエンド開発  >  YII の無効に関する問題 HELP HELP HELP HELP HELP HELP!

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

WBOY
WBOYオリジナル
2016-06-13 12:01:22924ブラウズ

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 は新しい接続を生成します (これはデータベース拡張機能と個別の関数とは異なります)

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