亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

關于ThinkPHP5的數據庫和模型用法

2020-03-22 20:22:24
字體:
來源:轉載
供稿:網友
1,TP5的數據庫架構

這里寫圖片描述

Db: 是TP5操作數據庫的入口類。它的作用是為連接數據庫做準備,我們只需要在database.php里填寫相應的配置即可。
Connection: 是TP5的連接器類,因為TP5支持四種數據庫(Mysql,Pgsql,Sqlite,Sqlsrv),所以TP5封裝了一個類來提供統一的調用接口來支持我們連接數據庫(這里的連接是惰性連接,只有在執行SQL的時候才會真正連接)。
Query: 查詢器,因為不同數據庫的SQL語句不同,所以封裝了一個Query類來提供統一的接口,以實現不同數據庫的CURD操作。查詢器是TP5數據訪問層的核心,它連接了Connection和Builder。
Builder: 生成器。這個類主要是把Query的查詢參數生成相應的sql語句,然后把其返回給Connection供其使用。
2, 數據庫的訪問

在TP5中,對于數據庫的訪問有三種方法:

原生sql語句。

Db::query( select * from think_user where id=? ,[8]);Db::execute( insert into think_user (id, name) html' target='_blank'>values (?, ?) ,[8, thinkphp 

查詢構造器

這里寫圖片描述

需要注意的是,上述的查詢方法中find,select,insert,update,delete都是查詢操作,其他的都是輔助操作,輔助操作返回的是個對象,支持鏈式調用。但一旦執行了查詢操作,就不能繼續調用了。

不同的輔助操作先后順序沒影響,但是相同的輔助操作先后順序會有影響。

不同的輔助操作,先后順序沒影響。Db::table( banner )- where( id , , 2 )- order( update_time asc )- select();Db::table( banner )- order( update_time asc )- where( id , , 2 )- select();
相同的查詢操作,先后順序有影響。$list = Db::table( data ) - where( id , , 1) - where( name , like , %think% ) - order( id , desc ) - order( create_time , desc ) - limit(8) - select();$list = Db::table( data ) - where( name , like , %think% ) - where( id , , 1) - order( create_time , desc ) - order( id , desc ) - limit(8) - select();

模型

ORM Object Relation Mapping 對象關系映射

就是通過模型來映射到我們的數據庫中的表,然后通過操作模型來操作數據庫。

我們通過和查詢構造器對比來看

// 查詢操作$user = Db::table( user )- find(1);// 取值操作echo $user[ name echo $user[ email // 設置操作$user[ name ] = topthink $user[ email ] = thinkphp@qq.com // 更新操作Db::table( user )- update($user);

如果是模型操作的話,就可以對應下面的代碼實現

// 查詢操作$user = User::get(1);// 取值操作echo $user- name;echo $user- email;// 設置操作$user- name = topthink $user- email = thinkphp@qq.com // 更新操作$user- save();

這里是在模型的外部,也就是控制器里的取值和設置操作,但是在模型內部,是使用如下方式:

// 取值操作echo $user- getData( name echo $user- getData( email // 設置操作echo $user- data( name , SpawN echo $user- data( email , 123@qq.com 

模型的CURD操作

創建

Db 用法:

Db::table( user )- insert([ name = spawn , email = 123@qq.com ])

模型用法:

$user = new User;$user- save([ name = spawn , email = 123@qq.com ])$user = User::create([ name = sapwn , email = 123@qq.com ])

總結:

save(動態) 返回: 影響的記錄數

create(靜態) 返回:模型對象實例 (可以直接調用方法)

讀取

Db :

$user = Db::table( user )- where( id , 1)- find();

模型:

$user = User::get(1);

需要注意的是,find和select是查詢構造器的方法,get和all是模型的方法。但模型又是基于查詢構造器的,所以模型可以調用find和select方法,但是查詢構造器不能調用get和all方法

總結:

方法 作用 返回值
get 查詢單個記錄 模型對象實例
find 查詢單個記錄 模型對象實例
all 根據主鍵查詢多個記錄 包含模型對象實例的數組或者數據集
select 根據條件查詢多個記錄 包含模型對象實例的數組或者數據集

更新

Db :

Db::table( user )- where( id , 1)- update([ name = haha , email = heihei@qq.com ])

模型:

$user = User::get(1);$user- save([ name = haha , email = heihei@qq.com ])User::update([ name = topthink , email = topthink@qq.com ,], [ id = 1]);

總結:

方法 作用 返回值
save 更新數據 影響的記錄數
update 更新數據(靜態) 返回模型對象實例

需要注意的是,模型的更新操作是只更新有變化的數據。性能比較好。

刪除

Db:

Db::table( user )- delete(1);

模型:

$user = User::get(1);$user- delete();User::destory(1);

總結:

方法 作用 返回值
delete 刪除當前數據 影響的記錄數
destroy 刪除指定數據(靜態) 影響的記錄數

現在我們已經掌握了模型的基本CURD操作,我們來總結下方法區別:

用法 Db類 模型(動態) 模型(靜態)
創建 insert save create
更新 update save update
讀取單個 find find get
讀取多個 select select all
刪除 delete delete destroy

本文講解了關于ThinkPHP5的數據庫和模型用法 ,更多相關內容請關注php 。

相關推薦:

關于thinkphp5.0數據庫操作的案例

列舉ThinkPHP5與ThinkPHP3的一些異同點

創建一個最簡單的ThinkPhp項目工程

以上就是關于ThinkPHP5的數據庫和模型用法的詳細內容,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久6免费高清热精品| 久久伊人91精品综合网站| 国产精品美腿一区在线看| 亚洲影院高清在线| 欧美国产日韩一区| 久久精品国产清自在天天线| 91久久精品视频| 91精品国产高清久久久久久久久| 欧美老女人bb| 日韩欧美成人精品| 久久在线观看视频| 综合网日日天干夜夜久久| 国产va免费精品高清在线| 国产成人午夜视频网址| 国产精品免费在线免费| 亚洲人成电影网| 欧美精品在线看| 欧美激情视频在线免费观看 欧美视频免费一| 亚洲精品美女网站| 一二美女精品欧洲| 国产精品三级在线| 亚洲人成自拍网站| 日韩精品视频免费在线观看| 精品视频久久久久久| 国产精品v片在线观看不卡| 黑人巨大精品欧美一区二区免费| 日韩一区二区三区xxxx| 欧美成人性生活| 97国产suv精品一区二区62| 国产精品中文字幕在线观看| 欧美另类69精品久久久久9999| 伦伦影院午夜日韩欧美限制| 久久久久久91香蕉国产| 日韩福利视频在线观看| 欧美日韩亚洲网| 亚洲欧洲美洲在线综合| 成人精品网站在线观看| 北条麻妃一区二区三区中文字幕| 日韩视频免费大全中文字幕| 4444欧美成人kkkk| 日韩免费视频在线观看| 国产精品视频免费在线观看| 久久久久久尹人网香蕉| 国产精品中文字幕久久久| 伊人久久综合97精品| 国产成人精品久久亚洲高清不卡| 久久伊人91精品综合网站| 91爱视频在线| 久久精品99国产精品酒店日本| 亚洲欧美中文日韩在线| 一区二区三区四区视频| 国产欧美一区二区白浆黑人| 亚洲精品成人久久久| 国产精品69精品一区二区三区| 亚洲欧美日韩一区二区三区在线| 国产精品爱啪在线线免费观看| 亚洲成人久久久久| 亚洲精品98久久久久久中文字幕| 色777狠狠综合秋免鲁丝| 国产精品天天狠天天看| 亚洲视频电影图片偷拍一区| 国产午夜精品麻豆| 成人网页在线免费观看| 国产成人精品久久二区二区| 亚洲在线视频观看| 亚洲在线www| 亚洲欧洲在线播放| 91爱爱小视频k| 国产一区二区三区高清在线观看| 亚洲一区二区三区视频播放| 欧美猛交ⅹxxx乱大交视频| 欧美一乱一性一交一视频| 中文字幕欧美日韩va免费视频| 欧美巨乳美女视频| 久久亚洲精品成人| 亚洲精品国产精品乱码不99按摩| 九九热这里只有精品免费看| 黄色一区二区在线观看| 欧美电影在线播放| 国产精品扒开腿做爽爽爽视频| 亚洲国产精品久久精品怡红院| 欧美在线视频播放| 91地址最新发布| 久久久国产在线视频| 国产欧美精品久久久| 成人网中文字幕| 国产精品www| 亚洲石原莉奈一区二区在线观看| 国产z一区二区三区| 精品亚洲国产成av人片传媒| 夜夜嗨av色一区二区不卡| 最近2019年好看中文字幕视频| 97超碰国产精品女人人人爽| 欧美日韩ab片| 亚洲精品久久久久久下一站| 亚洲精品欧美日韩| 国产精品黄页免费高清在线观看| 久久久精品999| 久久久久久久999精品视频| 色综久久综合桃花网| 91av中文字幕| 韩国美女主播一区| 日韩视频第一页| 欧美精品久久久久久久| 日韩成人性视频| 超碰精品一区二区三区乱码| 亚洲人成欧美中文字幕| 在线性视频日韩欧美| 欧日韩不卡在线视频| 久久久噜久噜久久综合| 久久精品夜夜夜夜夜久久| 国产精品久久久久久亚洲影视| 国产精品网红福利| 伊人伊成久久人综合网小说| 亚洲国产天堂久久综合| 在线观看日韩专区| 欧洲成人在线观看| 91精品久久久久久| 国内成人精品视频| 亚洲国产精品高清久久久| 亚洲欧美日韩第一区| 欧美一级视频在线观看| 亚洲精品国产拍免费91在线| 亚洲国产精品国自产拍av秋霞| 国产精品成人国产乱一区| 狠狠久久五月精品中文字幕| 国产精品嫩草视频| 中文字幕在线看视频国产欧美| 国产精品久久不能| 国产亚洲一区二区精品| 97在线免费观看视频| 亚洲乱码一区av黑人高潮| 在线精品高清中文字幕| 成人黄色生活片| 国产精品18久久久久久麻辣| 日韩av在线导航| 性欧美xxxx交| 有码中文亚洲精品| 色先锋资源久久综合5566| 久久人人爽人人爽爽久久| 最近2019年好看中文字幕视频| 中文字幕久久亚洲| 国产精品99蜜臀久久不卡二区| 国产精品高清网站| 欧美激情xxxx性bbbb| 亚洲精品视频中文字幕| 欧美裸体视频网站| 亚洲精品国产suv| 在线观看免费高清视频97| 91久久精品视频| 91久久精品日日躁夜夜躁国产| 91精品国产综合久久香蕉| 精品自拍视频在线观看| 久久在精品线影院精品国产| 日韩精品在线播放| 久久久视频精品| 欧美成人免费在线视频| 国产欧美日韩丝袜精品一区| 日韩精品一区二区视频| 欧美在线国产精品| 午夜精品久久久久久久久久久久| 亚洲福利精品在线| 97国产精品视频人人做人人爱| 日韩av电影国产|