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(通常是數字的字段來進行操作),第一個寫字段,第二個寫條件,第三個寫需要增加整數:
$list=$user->setInc('price','id=1',3);//表示price的字段加3
setDec就是進行減的操作
$list=$user->setDec('price','id=1',3);//表示price的字段減3
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);
- }
新聞熱點
疑難解答
圖片精選