本文用做工做記錄,也許有人會問爲何不用 Yii 的 Model 去操做 DB,緣由很簡單,Yii 的 Model 寫法上是方便了不少,可是會執行多餘的 SQL,打開 Yii 的執行 log 就會發現。因此爲了效率,爲了 DB 服務器的性能考慮,仍是使用 createCommand 的好。php
insert服務器
$row = Yii::app()->getDb()->createCommand()->insert('goods', array( 'good_name' => $goods_name, 'good_type' => $goods_type, 'price' => $price, 'buy_nums' => 0, 'commit_nums' => 0, 'create_time' => time(), ));
select 單表查詢app
$goodsTypes = Yii::app()->getDb()->createCommand() ->select('type_id, type_name') ->from('goods_type') ->where('status=1')->queryAll();
連表查詢性能
$goods = Yii::app()->getDb()->createCommand()->from('goods g') ->select('g.good_id, g.good_name, gt.type_name, g.price, g.buy_nums, g.commit_nums, g.create_time') ->join('goods_type gt', 'g.good_type=gt.type_id') ->where('g.`status`=1 and gt.`status`=1') ->order('g.create_time desc') ->queryAll();
delete
spa
$row = Yii::app()->getDb()->createCommand() ->delete('goods', "good_id=:good_id", array( ':good_id' => $goods_id, ));
update
code
$row = Yii::app()->getDb()->createCommand()->update('goods', array( 'good_name' => $goods_name, 'good_type' => $goods_type, 'price' => $price, ), "good_id='{$goods_id}'");