Yii framwork crud 深入YII DAO [ 未指定版本 ]
YII DAO有很多的现成的方法可以帮助我们,当然在使用之前我们首先要得到一个实例化的对象,比如:
$command = Yii::app()->db->createCommand();注意参数留空了,现在我们就可以通过对象$command
调用这些方法了,还有一点要说一下就是$command可以多次使用,但是在重复使用之前需要reset()一下
就可以了,下面我先罗列一些可供我们使用的方法:
->select() SELECT子句
->selectDistinct() 并保持了记录的唯一性
->from(): 构建FROM子句
->where(): 构建WHERE子句
->join(): 在FROM子句中构建INNER JOIN 子句
->leftJoin(): 在FROM子句中构建左连接子句
->rightJoin(): 在FROM子句中构建右连接子句
->crossJoin(): 添加交叉查询片段(没用过)
->naturalJoin(): 添加一个自然连接子片段
->group(): GROUP BY子句
->having(): 类似于WHERE的子句,但要与GROUP BY连用
->order(): ORDER BY子句
->limit(): LIMIT子句的第一部分
->offset(): LIMIT子句的第二部分
->union(): appends a UNION query fragment
select() //function select($columns='*')
select('username, email');//指定列 select('tbl_user.id');//使用表限定
select('username name');//使用别名 select(array('id', 'count(*) as num'));// 或使用数组作为参数
form() //function from($tables)
from('tbl_user,tbl_profile');//像sql那样
from('tbl_user u, public.tbl_profile p');//使用表别名, 还可以使用完整的数据库限定名
WHERE //function where($conditions, $params=array())
where(array('and', 'id=:id', 'username=:username'), array(':id'=>$id, ':username'=>$username);// 在where()中使用 AND
where( array('and', 'type=1', array('or', 'id=:id','username=abc') ),array(':id'=>$id));//在where()中使用 OR 与 AND用法相同
where(array('in', 'id', array(1,2,3)))// IN 操作符用法
where( array('like','name', '%tester%') );// LIKE 用法
where( array('like','name', array('%test%', '%sample%')) )//等于name LIKE '%test%' AND name LIKE '%sample%
// 添加了这么多,你都不知道合成后的SQL长啥样了,可以使用->text查看
join() //function join($table, $conditions, $params=array())
leftJoin() //function leftJoin($table, $conditions, $params=array())
rightJoin() //function rightJoin($table, $conditions, $params=array())
crossJoin() //function crossJoin($table)
naturalJoin() //function naturalJoin($table)
join('tbl_user', 'user_id=:id',array(":id"=>$id))// JOIN `tbl_profile` ON user_id=id(绑定叁数)
leftJoin('tbl_post p', 'p.user_id=id AND type=1')// LEFT JOIN `tbl_post` `p` ON p.user_id=id AND type=1
group() //function group($columns)
group('name, id')// GROUP BY `name`, `id` group(array('tbl_user.name', 'id'))// GROUP BY `tbl_user`.`name`, `id`
having() //function having($conditions, $params=array())
having('id=:id',array(":id"=>$id))// HAVEING id=$id having('id=1 or id=2')// HAVING id=1 or id=2
having(array('or', 'id=1', 'id=2'))// HAVING id=1 OR id=2
order() //function order($columns)
order('name, id desc')// ORDER BY `name`, `id` DESC
order(array('tbl_profile.name', 'id desc'))// ORDER BY `tbl_profile`.`name`, `id` DESC
limit() //function limit($limit, $offset=null) and offset() //function offset($offset)
limit(10)// LIMIT 10 limit(10, 20)// LIMIT 10 OFFSET 20 offset(20)// OFFSET 20
union() //function union($sql)执行指定的sql语句
union('select * from tbl_profile')// UNION (select * from tbl_profile)
总之就是YII DAO使用起来可能有些繁琐,所以适用于处理复杂的数据库操作,当然DAO的操作不止这些因为我在整理CRUD
所以就记录了这些,如果有兴趣大家可以直接查看这方面的
原文http://blog.csdn.net/lucifer_qiao/article/details/8763959
手册 http://www.yiichina.com/api/CDbCommand
游学
注册时间:2012-06-30
最后登录:2014-09-19
在线时长:0小时2分
最后登录:2014-09-19
在线时长:0小时2分
- 粉丝5
- 金钱70
- 威望60
- 积分670
共 0 条评论