Yii createCommand CURD操作

本文是个人记录,也许有人会问为什么不用 Yii 的 Model 去操作 DB,原因很简单,Yii 的 Model 写法上是方便了很多,但是会执行多余的 SQL,
打开 Yii 的执行 log 就会发现。   打开跟踪log的方法,config/main.php中 log routes 中添加

[  
    'class' => 'CWebLogRoute',  
]  
所以为了效率,为了 DB 服务器的性能考虑,还是使用 createCommand 的好。
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
单表查询

$goodsTypes = Yii::app()->getDb()->createCommand()  
        ->select('type_id, type_name')  
        ->from('goods_type')  
        ->where('status=:status', [  
            ':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`=:status1 and gt.`status`=:status2', [  
            ':status1' => 1,  
            ':status2' => 2  
        ])  
        ->order('g.create_time desc')  
        ->queryAll();  

delete

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


update

$row = Yii::app()->getDb()->createCommand()->update('goods', [  
    'good_name' => $goods_name,  
    'good_type' => $goods_type,  
    'price' => $price,  
        ], "good_id=:good_id", [  
    ':good_id' => 1  
        ]);  


说明下,where 方法的使用方法很多,具体看 Yii 的代码注释,写的很详细。
就记录这点吧~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值