tp5.1 框架資料庫-資料集操作例項分析
阿新 • • 發佈:2020-05-27
本文例項講述了tp5.1 框架資料庫-資料集操作。分享給大家供大家參考,具體如下:
資料庫的查詢結果也就是資料集,預設的配置下,資料集的型別是一個二維陣列,我們可以配置成資料集類,就可以支援對資料集更多的物件化操作,需要使用資料集類功能,可以配置資料庫的resultset_type
引數如下:
return [ // 資料庫型別 'type' => 'mysql',// 資料庫連線DSN配置 'dsn' => '',// 伺服器地址 'hostname' => '127.0.0.1',// 資料庫名 'database' => 'thinkphp',// 資料庫使用者名稱 'username' => 'root',// 資料庫密碼 'password' => '',// 資料庫連線埠 'hostport' => '',// 資料庫連線引數 'params' => [],// 資料庫編碼預設採用utf8 'charset' => 'utf8',// 資料庫表字首 'prefix' => 'think_',// 資料集返回型別 'resultset_type' => 'collection',];
返回的資料集物件是think\Collection
,提供了和陣列無差別用法,並且另外封裝了一些額外的方法。
在模型中進行資料集查詢,全部返回資料集物件,但使用的是
think\model\Collection
類,但用法是一致的。
可以直接使用陣列的方式操作資料集物件,例如:
// 獲取資料集 $users = Db::name('user')->select(); // 直接操作第一個元素 $item = $users[0]; // 獲取資料集記錄數 $count = count($users); // 遍歷資料集 foreach($users as $user){ echo $user['name']; echo $user['id']; }
V5.1.23+
版本開始,你可以在查詢的時候指定是否需要返回資料集(無需配置resultset_type
引數)
// 獲取資料集 $users = Db::name('user')->fetchCollection()->select(); // 直接操作第一個元素 $item = $users[0]; // 獲取資料集記錄數 $count = count($users); // 遍歷資料集 foreach($users as $user){ echo $user['name']; echo $user['id']; }
V5.1.24+
版本開始,fetchCollection
方法支援傳入使用的集合類名稱。
需要注意的是,如果要判斷資料集是否為空,不能直接使用empty
判斷,而必須使用資料集物件的isEmpty
方法判斷,例如:
$users = Db::name('user')->select(); if($users->isEmpty()){ echo '資料集為空'; }
Collection
類包含了下列主要方法:
方法 | 描述 |
---|---|
isEmpty | 是否為空 |
toArray | 轉換為陣列 |
all | 所有資料 |
merge | 合併其它資料 |
diff | 比較陣列,返回差集 |
flip | 交換資料中的鍵和值 |
intersect | 比較陣列,返回交集 |
keys | 返回資料中的所有鍵名 |
pop | 刪除資料中的最後一個元素 |
shift | 刪除資料中的第一個元素 |
unshift | 在資料開頭插入一個元素 |
reduce | 通過使用使用者自定義函式,以字串返回陣列 |
reverse | 資料倒序重排 |
chunk | 資料分隔為多個數據塊 |
each | 給資料的每個元素執行回撥 |
filter | 用回撥函式過濾資料中的元素 |
column | 返回資料中的指定列 |
sort | 對資料排序 |
shuffle | 將資料打亂 |
slice | 擷取資料中的一部分 |
更多關於thinkPHP相關內容感興趣的讀者可檢視本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結》、《ThinkPHP常用方法總結》、《codeigniter入門教程》、《CI(CodeIgniter)框架進階教程》、《Zend FrameWork框架入門教程》及《PHP模板技術總結》。
希望本文所述對大家基於ThinkPHP框架的PHP程式設計有所幫助。