ThinkPHP之增删改查之连贯操作
2017-04-11 11:12
357 查看
1.使用sql语句
2.连贯操作方法
select()方法要放在最后一个,其他方法没有先后顺序之分2.1 连贯方法之alias
alias用于设置当前数据表的别名,便于使用其他的连贯操作例如join方法具体参考http://document.thinkphp.cn/manual_3_2.html#alias
$Model = M('User'); $Model->alias('a')->join('__DEPT__ b ON b.user_id= a.id')->select();
2.2 连贯方法之join
具体参考http://document.thinkphp.cn/manual_3_2/join.htmljoin方法可以支持以上四种类型
LEFT JOIN / RIGHT JOIN / FULL JOIN/ INNER JOIN(默认)
join方法支持多次调用,支持给表起别名
WORK和 CARD在最终解析的时候会转换为 think_work和 think_card
$Model = M('Artist'); $model->alias('artist') ->join("LEFT JOIN __WORK__ work ON artist.id = work.artist_id") ->join("LEFT JOIN __CARD_ card ON artist.card_id = card.id") ->select();
2.3 连贯方法之field
具体参考http://document.thinkphp.cn/manual_3_2.html#field标识要返回(查询)或者操作(写入)的字段,可以用于查询和写入操作
所有的查询方法,包括find等都可以使用field方法
指定字段
$User = M("User"); // 实例化User对象 $field = "id,title,content"; $User ->field( $field)->select();
给字段设置别名
$User = M("User"); // 实例化User对象 $field = "id,nickname as name"; $User ->field( $field)->select();
使用SQL函数
$User = M("User"); // 实例化User对象 $field = "id,SUM(score)"; $User ->field( $field)->select();
数组方式
$User = M("User"); // 实例化User对象 $field = array('id','title','content'); $User ->field( $field)->select();
数组方式之设置别名
$User = M("User"); // 实例化User对象 $field = array('id','nickname'=>'name'); $User ->field( $field)->select();
获取所有字段
$Model->select(); $Model->field()->select(); $Model->field('*')->select(); $Model->field(true)->select();
字段排除
//获取除了user_id,content之外的所有字段 $Model->field('user_id,content',true)->select(); //或者用 $Model->field(array('user_id','content'),true)->select();
2.4连贯方法之where
具体参考http://document.thinkphp.cn/manual_3_2.html#where字符串条件
$User = M("User"); // 实例化User对象 $User->where('type=1 AND status=1')->select();
生成的sql语句是
SELECT * FROM think_user WHERE type=1 AND status=1
数组条件
数组条件之普通查询
$User = M("User"); // 第一步:实例化User对象 $map['name'] = 'thinkphp';//第二步:设置查询条件 $map['status'] = 1; $User->where($map)->select();// 第三步:把查询条件传入查询方法
最后生成的sql语句是:
SELECT * FROM think_user WHERE `name`='thinkphp' AND status=1
数组条件之表达式查询
$map['字段1'] = array('表达式','查询条件1'); //例如 $User = M("User"); // 第一步:实例化User对象 $map= array(); //第二步:设置查询条件 $map['name'] = array('like', '%'.(string)$name.'%'); //模糊查询 $map['age'] = array('egt', $age); //大于等于 $map['sex'] = array('eq', $sex); //等于 $map['addtime'] = array('lt', $enddate); //小于 $User->where($map)->select();// 第三步:把查询条件传入查询方法
最后生成的sql语句是:
SELECT * FROM think_user WHERE `name` LIKE '%?%' AND `age` >= '?' AND `sex` ='?' AND addtime <= '?'
怎么输出sql
$model = M("StockIn"); $field = "t.*,m1.truename as addname,m2.truename as updatename"; //列表list 集合 $list = $model->alias('t')->where("t.id= 8 ")->field($field)->select(); $sql = $model->getLastSql(); //输出sql 调试用 echo($sql);
相关文章推荐
- 简单的thinkphp,mysql增删查改,连贯操作总结
- 【thinkphp3.x】thinkphp3.x中连贯操作
- ThinkPHP学习教程-增删改查操作[附源码]
- ThinkPHP框架模型连贯操作(八)
- ThinkPHP 连贯操作
- ThinkPHP开发指南-模型之连贯操作
- ThinkPHP 增删查改操作及视图中数据接收与处理
- ThinkPHP基本的增删查改操作实例教程
- thinkPHP 连贯操作
- ThinkPHP - CURD增删改查操作
- ThinkPHP3.1快速入门连贯操作
- ThinkPHP 3.1.2 连贯操作
- ThinkPHP连贯操作
- 关于thinkphp连贯操作加锁的详细介绍lock
- ThinkPHP3.1快速入门(4)连贯操作
- ThinkPHP3.1快速入门(4)连贯操作
- ThinkPHP学习笔记(六)常用的连贯操作和模版的使用
- ThinkPHP第十八天(Widget类的使用,连贯操作where IN用法,缓存S函数使用)
- thinkphp连贯操作实例分析
- ThinkPHP - 连贯操作 - 【实现机制】