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 的代码注释,写的很详细。 就记录这点吧~
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: php如何给pdf加上文字水印和图片水印
- 下一篇: postgresql 查询结果 多行变一行