php读取云平台数据库,读取Read · ThinkPHP5+数据库和模型 · 看云
#### Db類實(shí)現(xiàn)讀取單個(gè)記錄
~~~
$user = Db::table('user')->where('id', 1)->find();
//或者
$user = Db::table('user')->find(1);
echo $user['id'];
echo $user['name'];
~~~
模型實(shí)現(xiàn)讀取單個(gè)記錄要比Db類簡(jiǎn)單很多,而且更加符合對(duì)象的設(shè)計(jì)。
~~~
$user = User::get(1);
echo $user->id;
echo $user->name;
~~~
V5.0.8版本之前模型的get方法如果沒(méi)有傳值或者傳入空值,會(huì)查詢第一個(gè)符合條件的數(shù)據(jù),這個(gè)問(wèn)題在V5.0.8版本已經(jīng)修正,get方法必須傳入非空的值,否則直接返回Null。
Db類的find方法返回的是一個(gè)數(shù)組,模型類的get方法返回的是一個(gè)User模型對(duì)象實(shí)例。模型的讀取操作一般使用靜態(tài)方法讀取即可,返回模型對(duì)象實(shí)例。
很多用戶往往會(huì)寫出下面的代碼,理論上來(lái)說(shuō)當(dāng)然也沒(méi)有錯(cuò),其實(shí)是大可不必的。
~~~
$user = new User;
$user->find(1);
~~~
除非你已經(jīng)在User模型的對(duì)象實(shí)例內(nèi)部去調(diào)用find方法讀取數(shù)據(jù),但這種方式不符合模型對(duì)象的設(shè)計(jì)原則,**一個(gè)模型對(duì)象實(shí)例應(yīng)該唯一對(duì)應(yīng)數(shù)據(jù)表的一條記錄**。
#### Db類實(shí)現(xiàn)讀取多個(gè)記錄
~~~
// 查詢用戶數(shù)據(jù)集
$users = Db::table('user')
->where('id', '>', 1)
->limit(5)
->select();
// 遍歷讀取用戶數(shù)據(jù)
foreach ($users as $user) {
echo $user['id'];
echo $user['name'];
}
~~~
模型實(shí)現(xiàn)讀取多個(gè)記錄
~~~
// 查詢用戶數(shù)據(jù)集
$users = User::where('id', '>', 1)
->limit(5)
->select();
// 遍歷讀取用戶數(shù)據(jù)
foreach ($users as $user) {
echo $user->id;
echo $user->name
~~~
模型的查詢操作比起Db查詢有一個(gè)顯著的特征就是不需要每次調(diào)用table或者name方法,因?yàn)槊總€(gè)模型在創(chuàng)建的時(shí)候已經(jīng)自動(dòng)對(duì)應(yīng)了數(shù)據(jù)表。
在讀取多個(gè)記錄的方式上,兩種方式的區(qū)別并不大,只是默認(rèn)返回?cái)?shù)據(jù)集類型的區(qū)別,Db方式返回的數(shù)據(jù)集是一個(gè)包含每個(gè)用戶數(shù)組的二維數(shù)組,而模型方式返回的數(shù)據(jù)集包含每個(gè)User模型對(duì)象實(shí)例的數(shù)組。
對(duì)于多個(gè)主鍵的數(shù)據(jù)讀取,模型還封裝了一個(gè)all方法,用法如下:
~~~
// 主鍵或者查詢條件查詢用戶數(shù)據(jù)集
// 主鍵 1.
// 相當(dāng)于 Db::table('user')->select([1,2,3]);
$users = User::all([1, 2, 3]);
// 條件 2.
//$users = User::all(['level_id'=>4]);
// 遍歷讀取用戶數(shù)據(jù)
foreach ($users as $user) {
echo $user->id;
echo $user->name;
}
~~~
關(guān)于模型的get和all方法的更多用法,而且也完全可以替代數(shù)據(jù)庫(kù)提供的find和select方法,我們會(huì)在模型高級(jí)用法一章中給你繼續(xù)深入。
總結(jié)
以上是生活随笔為你收集整理的php读取云平台数据库,读取Read · ThinkPHP5+数据库和模型 · 看云的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java隋唐演义游戏下载_JAVA多线程
- 下一篇: C++学习之路 | PTA乙级—— 10