thinkphp笔记(3)

来源:互联网 发布:锐捷端口聚合命令 编辑:程序博客网 时间:2024/05/21 10:52
CURD
*新增数据
$user->create();
$user->add();
*查询数据
find()  只查询一条记录,其返回的是一个一维数组
select()  select是指将该表当中的所有信息全部读出来
findAll()  findAll()与select方法相同,它就是select方法的同名方法

连贯操作
$user->where('字符串的形式来传的,他可以通过数组来传,也可以通过对象来传')
$user->table(array('表名(表前缀不能省略)'=>'别名'));或$user->tabel('表名(表前缀不能省略) 别名,表名(表前缀不能省略) 别名');如果你想操作多张表,就可以在此处使用table方法
例:$user->table(array('think_user'=>'user','think_user_message'=>'m'))->where('user.id=m.id')->select();
$user->table('think_user user,think_user_message m')->where('user.id=m.id')->select();

$user->data() data方法是可以被代替的,主要用在save()还有add和delete的时候进行使用,主要是向对象当中带数

$user->field();
$user->field('user.id as uid,m.id as mid')->table('think_user user,think_user_message m')->where('user.id=m.id')->select();
$user->field(array('user.id'=>'uid','m.id'=>'mid'))->table('think_user user,think_user_message m')->where('user.id=m.id')->select();

$user->order(array('id'=>'desc','username'))

$user->limit(起始位置(偏移量),查询多少条);
$user->limit(8);等价于$user->limit(0,8);

$user->page();查询分页,很少使用这个方法,经常使用分页类来实现分页,可以实现更加丰富的分页效果

$user->group()->select();

$user->having();与sql语句当中的having方法一致,结果更加精确,where当中怎么写,having中就怎么写

join是关联查询
$user->join('user on user.id=user_message.id','card on card.id=user_message.id');

distinct
$user->distinct(true)->select();//进行唯一性过滤

relation方法 关联模型

lock 查询锁 lock(true) 数据库的MYISAM引擎基本可以不用考虑锁
mysql 5.0 MYISAM 支持表级锁 INNODB才支持行级锁

getField('字段1,字段2');  不想查询其他东西时,可以用这个查询方法


*更新数据
$data['password'] = 'aaaa';
$list = $user->wehre('id=4')->save($data);
1.可以向save()当中直接传入想要更改的数据,数据格式为我们的字段信息数组
2.更新用的是save方法而不是update,thinkphp中没有update方法
3.可以不写where,但是对应的数组当中必须要有指定的where条件
$data['password'] = 'aa';
$data['id'] = '4';
$list = $user->save($data);
4.data()方法的使用
$data['password'] = 'aa';
$data['id'] = '4';
$list = $user->data($data)->save();
5.$list到底是什么?$list为受影响的行数,如果没有收影响的行数就说明没有更新成功

setField();
$user->where('id=1')->setField(array('username','password'),array('google','googlea'));

setInc  //通常是对数字字段进行操作
//前面第一项写字段,第二项写where条件,第三项写上对应的需要增加或者减少的整型
$list = $user->setInc('price','id=1',1);//id为1的数据的price字段值加1

setDec  //数字字段的值减相应的值,与setInc相反


*delete 方法
1.可以直接传入一个主键id
$list = $user->delete(7);
2.
$list = $user->where('id>5')->limit('1')->order('id desc')->delete();