CURD和关联操作
1、简单查询
$user =M( 'user' ); //查询一条信息,返回一维数组 $list = $user ->find(); //查询所有信息,返回二维数组select或者findAll() $list = $user ->select();2、查询中的连贯操作
(1)、where方法
$User ->where( 'status=1' )->order( 'create_time' )->limit(10)->select(); $User ->select( array ( 'order' => 'create_time' , 'where' => 'status=1' , 'limit' => '10' )); $User ->where( 'id=1' )->field( 'id,name,email' )->find(); $User ->where( 'status=1 and id=1' )-> delete (); $list = $user ->where( 'id>1' )->limit( '5' )->order( 'id desc' )->field( 'id,username' )->select();(2)、跨表查询$user->table()
$list = $user ->table( 'aoli_user u,aoli_test t' )->where( 'u.id=t.id' )->select();(3)、$user->data() data方法是可以被替代的,主要在save,add,delete操作的时候使用,保存数据用的
$Model ->data( $data )->add(); $Model ->data( $data )->where( 'id=3' )->save();Data 方法的参数支持对象和数组,如果是对象会自动转换成数组,如果不定义 data 方法赋值,也可以使用 create 方法或者手动给数据对象赋值的方式.
(4)、$user->field()
指定查询哪些字段字段,参数可以是字符串field('user.id as uid,m.id as mid '),也可以是数组field(array('user.id'=>'uid','m.id'=>'mid'))
(5)、$user->order()
参数也是既可以是字符串order('id desc')也可以是数组order(array('id'=>'desc','username'))
$Model ->field( 'id,nickname as name' )->select(); $Model ->field( array ( 'id' , 'nickname' => 'name' ))->select();(6)、limit()
有两个参数,第一个指起始位置,第二个参数指定查询多少条.
limit('8') 从第1条开始,查8条
limit('3,8') 从第3条开始,查8条
(7)、page()查询分页
(8)、group()分组
$user->group('')->select()
(9)、having方法,主要用于二次过滤。
(10)、join关联查询,常用的有内关联,左关联,右关联,默认为左关联
(11)、distinct 唯一性过滤
select distinct id ,username from ..
过滤掉重复过滤
$user->distinct(true)->select();
(12)、relation方法 关联模型
(13)、lock 查询锁 lock(true)
3、更新数据 save()
$user =M( 'user' ); $data [ 'password' ]= 'aaaa' ; $list = $user ->where( 'id=1' )->save( $data ); //或者 $user =M( 'user' ); $data [ 'password' ]= 'aaaa' ; $data [ 'id' ]= '4' ; $list = $user ->save( $data ); //或者 $user =M( 'user' ); $data [ 'password' ]= 'aaaa' ; $data [ 'id' ]= '4' ; $list = $user ->data( $data )->save();create来更新数据
create.html:
< form action = "__URL__/addit" method = "post" > < input type = "text" name = "id" /> < input type = "text" name = "username" /> < input type = "password" name = "password" /> < input name = "id" type = "hidden" value = "25" /> < input type = "submit" name = "sub" value = "提交" /> </ form >UserAction.class.php
function create(){ $this ->display(); } function addit(){ $user =M( 'user' ); if ( $vo = $user ->create()){ //$user->password=md5($user->password); if ( $user ->save()){ $this ->success( '更新成功' ); } else { $this ->error( '更新失败' ); } } }$vo为影响的行数,即更新了多少行,其它方法诸如setInc(通常是数字的字段来进行操作),第一个写字段,第二个写条件,第三个写需要增加整数:
setDec就是进行减的操作
setField单条记录定向修改
$user->where('id=1')->setField(array('username','password'),array('google','baidu'));
4、添加数据 add()
$user =M( 'user' ); $data [ 'password' ]= 'aaaa' ; $list = $user ->data( $data )->add();$list为插入后的主键值,或者用createg来添加:
function addit(){ $user =M( 'user' ); $vo = $user ->create(); $user ->add(); }表单post过来的值经过create方法以数组的形式压缩到了$vo中
5、删除数据 delete()
function del(){ $user =M( 'user' ); $list = $user -> delete (25); dump( $list ); } //或者 function del(){ $user =M( 'user' ); $list = $user ->where( 'id>5' )-> delete (); dump( $list ); }
查看更多关于CURD和关联操作 - Thinkphp的详细内容...