thinkphp getField( )和field( )


thinkphp getField( )和field( )

 

        做數據庫查詢的時候,比較經常用到這兩個,總是查手冊,記不住,現在把它總結下,希望以后用的時候不查手冊了。

        不管是用select 查詢數據集,還是用find 查詢數據,常配合連貫操作where、field、order等一起使用。

        field():用於定義要查詢的字段(支持字段排除)

        用法:field($field , $except=false)  

        參數:$field —— 字段名,要查詢的字段名; 

                    $except —— 是否排除,默認為false,省略不寫;如果為true,表示定義的字段為數據表中排除$field參數定義之外的所有字段

        返回值:當前的模型實例

        注:不調用field方法,默認返回所有字段,和field( '*' )等效。

        需要顯式的傳入所有的字段,可以使用下面的方法:

        $model -> field(true) ->select() ;

        但是建議只獲取需要顯式的字段名,或者采用字段排除方式來定義,例如:

        $model ->field( 'status' , true) ->select();    //獲取除了status之外的所有字段

        $model ->field( 'id','nickname')->select();  //獲取id和nickname字段

        getField():用於查詢某個字段的值

        用法:getField($field, $sepa=null)

        參數:$field —— 要獲取的字段字符串(多個用逗號分隔)

                    $sepa —— 字段數據間隔符號,如果是 NULL返回數組為數組。默認為null

        返回值:如果查詢結果為空返回null,如果field是一個字段則返回該字段的值,如果field是多個字段,返回數組。數組的索引是第一個字段的值,sepa為null則返回二維數組。

        示例:當只有一個字段的時候,默認返回一個值。

 

$User = M("User"); // 實例化User對象
// 獲取ID為3的用戶的昵稱 
$nickname = $User->where('id=3')->getField('nickname');

        示例:如果需要返回數組:

 

$this->getField('id',true); // 獲取id數組

        示例:如果傳入多個字段的話,默認返回一個關聯數組,

                    返回的list是一個數組,鍵名是用戶的id, 鍵值是用戶的昵稱nickname。

 

$User = M("User"); // 實例化User對象
// 獲取所有用戶的ID和昵稱列表 
$list = $User->getField('id,nickname');

         示例:如果傳入多個字段的名稱,例如:

 

$list = $User->getField('id,nickname,email');

        它返回的是一個二維數組,類似select方法的返回結果,區別的是這個二維數組的鍵名是用戶的id(准確的說是:getField方法的第一個字段名)。

        示例:如果我們傳入一個字符串分隔符:

 

$list = $User->getField('id,nickname,email',':');

那么返回的結果就是一個數組,鍵名是用戶id,鍵值是 nickname:email的輸出字符串。

        另外:sepa參數還可以支持限制數量,可以配合使用order方法使用。例如:

 

$this->getField('id,name',5); // 限制返回5條記錄
$this->getField('id',3); // 獲取id數組 限制3條記錄


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM