WIKI使用導(dǎo)航
站長(zhǎng)百科導(dǎo)航
站長(zhǎng)專(zhuān)題
- 網(wǎng)站推廣
- 網(wǎng)站程序
- 網(wǎng)站賺錢(qián)
- 虛擬主機(jī)
- cPanel
- 網(wǎng)址導(dǎo)航專(zhuān)題
- 云計(jì)算
- 微博營(yíng)銷(xiāo)
- 虛擬主機(jī)管理系統(tǒng)
- 開(kāi)放平臺(tái)
- WIKI程序與應(yīng)用
- 美國(guó)十大主機(jī)
ThinkPHP開(kāi)發(fā)指南-模型之ActiveRecord
導(dǎo)航:上一頁(yè)
ThinkPHP實(shí)現(xiàn)了ActiveRecords模式的ORM模型,采用了非標(biāo)準(zhǔn)的ORM模型:表映射到類(lèi),記錄映射到對(duì)象。最大的特點(diǎn)就是使用方便和便于理解(因?yàn)椴捎昧藢?duì)象化),提供了開(kāi)發(fā)的最佳體驗(yàn),從而達(dá)到敏捷開(kāi)發(fā)的目的。下面我們用AR模式來(lái)?yè)Q一種方式重新完成CURD操作。
- 創(chuàng)建數(shù)據(jù)
PHP代碼
$User = M("User"); // 實(shí)例化User對(duì)象 // 然后直接給數(shù)據(jù)對(duì)象賦值 $User->name = 'ThinkPHP'; $User->email = 'ThinkPHP@gmail.com'; // 把數(shù)據(jù)對(duì)象添加到數(shù)據(jù)庫(kù)
PHP代碼
$User->add();
如果使用了create方法創(chuàng)建數(shù)據(jù)對(duì)象的話,仍然可以在創(chuàng)建完成后進(jìn)行賦值
PHP代碼
$User = D("User");
PHP代碼
$User->create(); // 創(chuàng)建User數(shù)據(jù)對(duì)象,默認(rèn)通過(guò)表單提交的數(shù)據(jù)進(jìn)行創(chuàng)建 // 增加或者更改其中的屬性
PHP代碼
$User->status = 1; $User->create_time = time(); // 把數(shù)據(jù)對(duì)象添加到數(shù)據(jù)庫(kù)
PHP代碼
$User->add();
- 查詢(xún)記錄
AR模式的數(shù)據(jù)查詢(xún)比較簡(jiǎn)單,因?yàn)楦嗲闆r下面查詢(xún)條件都是以主鍵或者某個(gè)關(guān)鍵的字段。這種類(lèi)型的查詢(xún),ThinkPHP有著很好的支持。先舉個(gè)最簡(jiǎn)單的例子,假如我們要查詢(xún)主鍵為8的某個(gè)用戶(hù)記錄,如果按照之前的方式,我們可能會(huì)使用下面的方法:
PHP代碼
$User = M("User"); // 實(shí)例化User對(duì)象 // 查找id為8的用戶(hù)數(shù)據(jù) $User->where('id=8')->find();
用AR模式的話可以直接寫(xiě)成:
PHP代碼
$User->find(8);
如果要根據(jù)某個(gè)字段查詢(xún),例如查詢(xún)姓名為T(mén)hinkPHP的可以用:
PHP代碼
$User = M("User"); // 實(shí)例化User對(duì)象 $User->getByName("ThinkPHP");
這個(gè)作為查詢(xún)語(yǔ)言來(lái)說(shuō)是最為直觀的,如果查詢(xún)成功,查詢(xún)的結(jié)果直接保存在當(dāng)前的數(shù)據(jù)對(duì)象中,在進(jìn)行下一次查詢(xún)操作之前,我們都可以提取,例如獲取查詢(xún)的結(jié)果數(shù)據(jù):
PHP代碼
echo $User->name; echo $User->email; 如果要查詢(xún)數(shù)據(jù)集,可以直接使用: // 查找主鍵為1、3、8的多個(gè)數(shù)據(jù)
PHP代碼
$userList = $User->select('1,3,8');
更新記錄在完成查詢(xún)后,可以直接修改數(shù)據(jù)對(duì)象然后保存到數(shù)據(jù)庫(kù)。
PHP代碼
$User->find(1); // 查找主鍵為1的數(shù)據(jù) $User->name = 'TOPThink'; // 修改數(shù)據(jù)對(duì)象 $User->save(); // 保存當(dāng)前數(shù)據(jù)對(duì)象
上面這種方式僅僅是示例,不代表保存操作之前一定要先查詢(xún)。因?yàn)橄旅娴姆绞狡鋵?shí)是等效的:
PHP代碼
$User->id = 1; $User->name = 'TOPThink'; // 修改數(shù)據(jù)對(duì)象 $User->save(); // 保存當(dāng)前數(shù)據(jù)對(duì)象
- 刪除記錄
可以刪除當(dāng)前查詢(xún)的數(shù)據(jù)對(duì)象
PHP代碼
$User->find(2); $User->delete(); // 刪除當(dāng)前的數(shù)據(jù)對(duì)象 或者直接根據(jù)主鍵進(jìn)行刪除 $User->delete('8'); // 刪除主鍵為8的數(shù)據(jù) $User->delete('5,6'); // 刪除主鍵為5、6的多個(gè)數(shù)據(jù)