Thinkphp5.0對數據庫的操作方法有哪些

基本使用

查詢操作

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 返回所有記錄,返回的結果是一個二維數組 如果結果不存在,返回一個空數組

立即學習PHP免費學習筆記(深入)”;

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','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、?time?時間比較 

? 版權聲明
THE END
喜歡就支持一下吧
點贊11 分享