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
]);
打开跟踪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
]);
相关文章推荐
- php处理字符串
- 详解WordPress中用于更新和获取用户选项数据的PHP函数
- 视音频数据处理入门:UDP-RTP协议解析
- 【慕课笔记】4-3 字节流之文件输出流FileOutputStream
- 怎么用php写一个日志功能的函数
- 深入理解PHP原理之变量作用域
- 深入理解PHP原理之变量分离/引用
- PHP 运行方式(PHP SAPI介绍)
- php分享三十一:编程中的一些特殊写法
- 使用 php 内部web服务器
- php 教程列表
- Thinkphp项目结构
- PHP 单引号双引号的区别
- php 小积累
- iis配置php环境
- php curl模拟post请求提交数据样例总结
- PHP截取IE浏览器并缩小原图的方法
- ViewHolder baseadatper封装的万能适配器
- PHP无限分类原理和几种实现方法
- ThinkPHP分页及保持分页参数