一個標準的網站一定離不開資料庫的操作,在本套課程中我和你一起來揭開ThinkPHP5 資料操作的神秘面紗,和你一起愉快的使用ThinkPHP5 操作資料庫,讓資料庫操作變的更愉悅。
#查詢操作
Db::query('select * from think_user where id=?',[8]);
寫入操作
Db::execute('insert into think_user (id, name) values (?, ?)',[8,'thinkphp']);
##查詢資料
find 傳回一筆記錄,傳回的結果是一個一維數組如果結果不存在,回傳NULLDb::table('think_user')->where('id',1)->find();select 傳回所有記錄,傳回的結果是一個二維數組如果結果不存在,傳回一個空數組
Db::table('think_user')->where('status',1)->select();
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);更新數據
Db::table('think_user')->where('id', 1)->update(['name' => 'thinkphp']);
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方法進行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();
查詢表達式
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框架
】#
以上是聊聊Thinkphp 5.0 對資料庫的操作(關鍵程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!