Yii createCommand CURD操作

轉自:http://blog.csdn.net/liruxing1715/article/details/42168953

有人會問爲什麼不用 Yii 的 Model 去操作 DB,原因很簡單,Yii 的 Model 寫法上是方便了很多,但是會執行多餘的 SQL,打開 Yii 的執行 log 就會發現。

打開跟蹤log的方法,config/main.php中 log routes 中添加

  1. [  
  2.     'class' => 'CWebLogRoute',  
  3. ]  

所以爲了效率,爲了 DB 服務器的性能考慮,還是使用 createCommand 的好。

insert

  1. $row = Yii::app()->getDb()->createCommand()->insert('goods'array(  
  2.             'good_name' => $goods_name,  
  3.             'good_type' => $goods_type,  
  4.             'price' => $price,  
  5.             'buy_nums' => 0,  
  6.             'commit_nums' => 0,  
  7.             'create_time' => time(),  
  8.         ));  

select

單表查詢

  1. $goodsTypes = Yii::app()->getDb()->createCommand()  
  2.         ->select('type_id, type_name')  
  3.         ->from('goods_type')  
  4.         ->where('status=:status', [  
  5.             ':status' => 1  
  6.         ])  
  7.         ->queryAll();  

連表查詢
  1. $goods = Yii::app()->getDb()->createCommand()->from('goods g')  
  2.         ->select('g.good_id, g.good_name, gt.type_name, g.price, g.buy_nums, g.commit_nums, g.create_time')  
  3.         ->join('goods_type gt''g.good_type=gt.type_id')  
  4.         ->where('g.`status`=:status1 and gt.`status`=:status2', [  
  5.             ':status1' => 1,  
  6.             ':status2' => 2  
  7.         ])  
  8.         ->order('g.create_time desc')  
  9.         ->queryAll();  

delete
  1. $row = Yii::app()->getDb()->createCommand()  
  2.         ->delete('goods'"good_id=:good_id"array(  
  3.             ':good_id' => $goods_id,  
  4.         ));  


update
  1. $row = Yii::app()->getDb()->createCommand()->update('goods', [  
  2.     'good_name' => $goods_name,  
  3.     'good_type' => $goods_type,  
  4.     'price' => $price,  
  5.         ], "good_id=:good_id", [  
  6.     ':good_id' => 1  
  7.         ]);  

說明下,where 方法的使用方法很多,具體看 Yii 的代碼註釋,寫的很詳細。

就記錄這點吧~


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章