您的位置:首页 > 编程语言 > PHP开发

Yii createCommand CURD操作

2016-03-08 14:38 651 查看
本文用作工作记录,也许有人会问为什么不用 Yii 的 Model 去操作 DB,原因很简单,Yii 的 Model 写法上是方便了很多,但是会执行多余的 SQL,打开 Yii 的执行 log 就会发现。

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

[php] view plain copy

[

'class' => 'CWebLogRoute',

]

所以为了效率,为了 DB 服务器的性能考虑,还是使用 createCommand 的好。

insert

[php] view plain copy

$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

单表查询

[php] view plain copy

$goodsTypes = Yii::app()->getDb()->createCommand()

->select('type_id, type_name')

->from('goods_type')

->where('status=:status', [

':status' => 1

])

->queryAll();

连表查询

[php] view plain copy

$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`=:status1 and gt.`status`=:status2', [

':status1' => 1,

':status2' => 2

])

->order('g.create_time desc')

->queryAll();

delete

[php] view plain copy

$row = Yii::app()->getDb()->createCommand()

->delete('goods', "good_id=:good_id", array(

':good_id' => $goods_id,

));

update

[php] view plain copy

$row = Yii::app()->getDb()->createCommand()->update('goods', [

'good_name' => $goods_name,

'good_type' => $goods_type,

'price' => $price,

], "good_id=:good_id", [

':good_id' => 1

]);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: