createCommand

yii2使用原生语句执行数据库操作yii\db\Query和yii\db\Command

别说谁变了你拦得住时间么 提交于 2019-12-07 20:39:46
某些情况下我们并不需要启用比较重的AR去操作数据库,这里Yii2也为我们提供了 yii\db\Query 查询构造器 只能创建 查询 命令 yii\db\Command sql命令工具 可以创建 curd 操作 两个工具类来满足此类需求,还有个 yii\db\QueryBuilder 感觉用起来有些别扭,感兴趣的自己去看吧 yii\db\Query 查询构造器可以比较灵活的构建出各种查询命令(不过我觉得灵活是对不太熟悉sql的人来说,因为我比较喜欢写sql,所以我没觉得有多灵活....但Yii2总归还是很不错的) $query = new \yii\db\Query(); $query->select(['`user`.`id`', '`user`.`username`, `order`.`info`']) ->distinct(false) ->from('{{%_user}} as `user`') ->leftJoin(['order' => '{{%_order}}'], '`order`.`uid` = `user`.`id`') ->where(['or', ['>=', '`user`.`id`', 20], ['<=', '`user`.`id`', 10]]) ->andWhere(['not', ['`user`.`username`' => null]]) -

Yii createCommand CURD操作

折月煮酒 提交于 2019-12-07 11:04:20
本文用作工作记录,也许有人会问为什么不用 Yii 的 Model 去操作 DB,原因很简单,Yii 的 Model 写法上是方便了很多,但是会执行多余的 SQL,打开 Yii 的执行 log 就会发现。所以为了效率,为了 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=1')->queryAll(); 连表查询 $goods = Yii::app()->getDb()->createCommand()->from('goods g') ->select('g.good_id, g