一. 連貫入門
查詢到 id 為 1,2,3,4 中按照建立時間的倒序的前兩位。
在 home/controller/usercontroller.class.php 下插入
1、連貫操作入門
$user = m('user');得到的sql查詢語句為var_dump($user->where('id in (1,2,3,4)')->order('date desc')->limit(2)->select());
ps:這裡的 where、order 和 limit 方法都是連貫操作方法,所以它們都能返回$user本身,
可以互換位置。而 select 方法不是連貫方法,需要放在最後,用以顯示資料集。
2、陣列操作
$user = m('user');或者是var_dump($user->select( array('where'=>'id in (1,2,3,4)', 'limit'=>'2','order'=>'date desc')));
$user = m('user');二. 連貫方法1.wherevar_dump($user->select(array('where'=>array('id'=>array('neq','1')),'order'=>'date desc','limit'=>'2')));
where 方法支援字串條件、陣列條件(推薦用法)和多次呼叫
//或字串方式
$user = m('user');
var_dump($user->where('id=1')->select());
//或索引陣列方式
$user = m('user');
$map['id'] = 1;
var_dump($user->where($map)->select());
$user = m('user');2.order$map['id'] = array('eq', 1);
var_dump($user->where($map)->where('user="蠟筆小新"')->select());
order 用於對結果集排序。
//或倒序$user = m('user');
$map['id'] = array('eq', 1);
var_dump($user->order('id desc')->select()); //
正序預設或 asc
//這個用法在這個資料庫裡是沒有什麼意義的,但是如果是在比較成績的時候就可以使用了,比如將id換成語文成績,email換成數學成績,第二排序
var_dump($user->order('id desc,email desc')->select());
ps:先按 id 倒序,再按 email 倒序
當語文成績是一樣的時候,那這時候就比較數學成績了,這時候才用到兩個排序的功能。
或
//使用陣列的形式就是能夠在sql查詢的時候在user等字段上加上``符號,更安全。陣列形式防止欄位和mysql關鍵字衝突
$user = m('user');
$map['id'] = array('eq', 1);
var_dump($user->order( array('id'=>'desc'))->select());
3.feild
feild 方法可以返回或操作字段,可以用於查詢和寫入操作。
只顯示id和user兩個字段
$user = m('user');使用sql函式和別名var_dump($user->field('id, user')->select());
$user = m('user');其中 'sum(id) as nihao 中的nihao為設定的別名,在瀏覽器中顯示為var_dump($user->field('sum(id) as nihao, user')->select());
使用陣列引數結合sql函式
$user = m('user');這時只顯示user中資料的前三個字var_dump($user->field( array('id','left(user,3)'=>'left_user'))->select());
並且其中的 left_user 也是設定的別名,在sql查詢語句中為:
獲取所有字段
$user = m('user');4.limitvar_dump($user->field()->select());
limit 方法主要用於指定查詢和操作的數量。
限制結果集數量
$user = m('user');分頁查詢var_dump($user->limit(2)->select());
$user = m('user');5.pagevar_dump($user->limit(0,2)->select());
page 方法完全用於分頁查詢。
$user = m('user');6.tablevar_dump($user->page(1,2)->select()); //第乙個1是頁碼數,第二個2是條數
table 方法用於資料表操作,主要是切換資料表或多表操作。
切換資料表
$user = m('user');獲取簡化表名var_dump($user->table('think_info')->select());
$user = m('user');注意的是,因為資料表名為think_user,所以這裡是__user__,即user兩邊都是兩個下劃線,且必須大寫,這裡的user是資料表的字尾名var_dump($user->table('__user__')->select());
多表查詢
$user = m('user');也就是獲得兩個資料表中的id,在瀏覽器中為var_dump($user->field('a.id,b.id')->table('__user__ a,__info__ b')->select());
在sql查詢語句中為
多表查詢,使用陣列形式避免關鍵字衝突
$user = m('user');這時,即為查詢的資料表加上``符號。var_dump($user->field('a.id,b.id')->table( array('think_user'=>'a',
'think_info'=>'b'))->select());
alias 用於設定資料表別名
$user = m('user');不使用別名的時候:var_dump($user->alias('a')->select());
使用別名的時候
都沒有了``符號,也不知道是用來幹嘛的
php oop連貫操作原理
php oop連貫操作原理 符號其實是傳遞物件指標的。或許這麼說是不對的。但是,我們可以這麼的理解。不多說。放 普通用法 class test public function actionb public function actionc oktest new test oktest actiona...
call方法以及連貫操作
如果呼叫類中不存在的方法,一定會出現系統錯誤,我們可以利用 call 來提醒呼叫的方法不存在 call 存在兩個引數,第乙個引數是不存在的方法,第乙個引數 其實就是那個不存在的方法 所設定的引數將會以陣列的形式傳遞給第二個引數 接下來主要介紹連貫操作,連貫操作,呼叫不存在的方法,利用 call 將不...
CodeIgniter連貫操作的底層原理分析
php oop連貫操作原理 符號其實是傳遞物件指標的。或許這麼說是不對的。但是,我們可以這麼的理解。不多說。放 普通用法 public function actionb public function actionc oktest new test oktest actiona oktest act...