站長資訊網
最全最豐富的資訊網站

聊聊Thinkphp 5.0 對數據庫的操作(關鍵代碼)

一個標準的網站一定離不開數據庫的操作,在本套課程中我和你一起來揭開ThinkPHP5 數據操作的神秘面紗,和你一起愉快的使用 ThinkPHP5 操作數據庫,讓數據庫操作變的更愉悅。

聊聊Thinkphp 5.0 對數據庫的操作(關鍵代碼)

php入門到就業線上直播課:進入學習
API 文檔、設計、調試、自動化測試一體化協作工具:點擊使用

基本使用

查詢操作

Db::query('select * from think_user where id=?',[8]);

寫入操作

Db::execute('insert into think_user (id, name) values (?, ?)',[8,'thinkphp']);

查詢構造器

查詢數據

find 返回一條記錄,返回的結果是一個一維數組 如果結果不存在,返回NULL

Db::table('think_user')->where('id',1)->find();

select 返回所有記錄,返回的結果是一個二維數組 如果結果不存在,返回一個空數組

Db::table('think_user')->where('status',1)->select();

助手函數

系統提供了一個db助手函數,可以更方便的查詢:

db('user')->where('id',1)->find(); db('user')->where('status',1)->select();

注意:使用db助手函數默認每次都會重新連接數據庫,而使用Db::name或者Db::table方法的話都是單例的。db函數如果需要采用相同的鏈接,可以傳入第三個參數,例如

db('user',[],false)->where('id',1)->find(); db('user',[],false)->where('status',1)->select();

添加數據

使用 Db 類的 insert 方法向數據庫提交數據

$data = ['foo' => 'bar', 'bar' => 'foo']; Db::table('think_user')->insert($data);

添加多條數據

添加多條數據直接向 Db 類的 insertAll 方法傳入需要添加的數據即可

$data = [    ['foo' => 'bar', 'bar' => 'foo'],     ['foo' => 'bar1', 'bar' => 'foo1'],     ['foo' => 'bar2', 'bar' => 'foo2'] ]; Db::name('user')->insertAll($data);

insertAll 方法添加數據成功返回添加成功的條數

助手函數

// 添加單條數據 db('user')->insert($data);  // 添加多條數據 db('user')->insertAll($list);

更新數據

update 方法返回影響數據的條數,沒修改任何數據返回 0

Db::table('think_user')->where('id', 1)->update(['name' => 'thinkphp']);

更新某個字段的值: setField 方法返回影響數據的條數,沒修改任何數據字段返回 0

Db::table('think_user')->where('id',1)->setField('name', 'thinkphp');
自增或自減一個字段的值 // score 字段加 1 Db::table('think_user')->where('id', 1)->setInc('score'); // score 字段加 5 Db::table('think_user')->where('id', 1)->setInc('score', 5); // score 字段減 1 Db::table('think_user')->where('id', 1)->setDec('score'); // score 字段減 5 Db::table('think_user')->where('id', 1)->setDec('score', 5);

延遲更新

Db::table('think_user')->where('id', 1)->setInc('score', 1, 10);

刪除數據

// 根據主鍵刪除 Db::table('think_user')->delete(1); Db::table('think_user')->delete([1,2,3]);  // 條件刪除     Db::table('think_user')->where('id',1)->delete(); Db::table('think_user')->where('id','<',10)->delete();

條件查詢方法

where

可以使用where方法進行AND條件查詢:

Db::table('think_user')     ->where('name','like','%thinkphp')     ->where('status',1)     ->find();

whereOr方法

Db::table('think_user')     ->where('name','like','%thinkphp')     ->whereOr('title','like','%thinkphp')     ->find();

混合查詢

where方法和whereOr方法在復雜的查詢條件中經常需要配合一起混合使用,下面舉個例子:

$result = Db::table('think_user')->where(function ($query) {     $query->where('id', 1)->whereor('id', 2); })->whereOr(function ($query) {     $query->where('name', 'like', 'think')->whereOr('name', 'like', 'thinkphp'); })->select();

查詢表達式

查詢表達式支持大部分的SQL查詢語法,也是ThinkPHP查詢語言的精髓,查詢表達式的使用格式:

where('字段名','表達式','查詢條件'); whereOr('字段名','表達式','查詢條件');
表達式 含義 EQ、= 等于(=) NEQ、<> 不等于(<>) GT、> 大于(>) EGT、>= 大于等于(>=) LT、< 小于(<) ELT、<= 小于等于(<=) LIKE 模糊查詢 [NOT] BETWEEN (不在)區間查詢 [NOT] IN (不在)IN 查詢 [NOT] NULL 查詢字段是否(不)是NULL [NOT] EXISTS EXISTS查詢 EXP 表達式查詢,支持SQL語法 > time 時間比較 < time 時間比較 between time 時間比較 notbetween time 時間比較

【相關教程推薦:thinkphp框架】

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
亚洲综合无码精品一区二区三区| 亚洲日韩精品无码专区网址| 久久亚洲精品无码AV红樱桃| 91国内外精品自在线播放| 青青热久久国产久精品| 精品无码国产AV一区二区三区| 99久久久精品免费观看国产| 久久久精品人妻一区二区三区蜜桃 | 亚洲综合av永久无码精品一区二区| 无码精品人妻一区二区三区影院| 日韩美无码五月天| 国产精品福利影院| 国产精品萌白酱在线观看| 香蕉久久国产精品免| 精品无人乱码一区二区三区| 91免费精品国自产拍在线不卡| 99在线精品视频在线观看| 2021久久国自产拍精品| 99久久er这里只有精品18| 99热门精品一区二区三区无码| 国产精品久久成人影院| 国产精品一区在线播放| 无码国产精品一区二区免费式影视 | 亚洲精品一卡2卡3卡四卡乱码| 国产精品久久亚洲不卡动漫| 国内精品免费麻豆网站91麻豆| 2020亚洲男人天堂精品| 国自产拍 高清精品| 欧美亚洲精品一区二区| 国产精品麻豆成人AV电影艾秋| 精品国产电影久久九九| 在线视频日韩精品| 四虎影视精品永久免费网站| 中文字幕日韩精品在线| 日韩精品电影一区| 无码人妻一区二区三区精品视频| 日韩精品电影在线| 国产精品自产拍在线18禁| 久久精品国产清自在天天线| 欧亚精品卡一卡二卡三| 国产在线拍揄自揄视精品不卡 |