一、查詢數據操作如下:
db('user')->where('id',1)->find();//查詢一條數據 db('user')->where('status',1)->select();//查詢多條數據
二、添加數據操作如下:
// 添加單條數據 $data = ['foo' => 'bar', 'bar' => 'foo']; db('user')->insert($data); // 添加多條數據 $list = [ ['foo' => 'bar', 'bar' => 'foo'], ['foo' => 'bar1', 'bar' => 'foo1'], ['foo' => 'bar2', 'bar' => 'foo2'] ]; db('user')->insertAll($list);
三、修改數據操作如下:
// 更新數據表中的數據 db('user')->where('id',1)->update(['name' => 'thinkphp']); // 更新某個字段的值 db('user')->where('id',1)->setField('name','thinkphp'); // 自增 score 字段 db('user')->where('id', 1)->setInc('score'); // 自減 score 字段 db('user')->where('id', 1)->setDec('score');
四、刪除數據操作如下:
// 根據主鍵刪除 db('user')->delete(1); // 條件刪除 db('user')->where('id',1)->delete();
五、查詢條件方法:
where方法 可以使用where方法進行AND條件查詢: Db::table('think_user') ->where('name','like','%thinkphp') ->where('status',1) ->find(); 多字段相同條件的AND查詢可以簡化為如下方式: Db::table('think_user') ->where('name&title','like','%thinkphp') ->find(); whereOr方法 使用whereOr方法進行OR查詢: Db::table('think_user') ->where('name','like','%thinkphp') ->whereOr('title','like','%thinkphp') ->find(); 多字段相同條件的OR查詢可以簡化為如下方式: Db::table('think_user') ->where('name|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語句類似於下面: SELECT * FROM `think_user` WHERE ( `id` = 1 OR `id` = 2 ) OR ( `name` LIKE 'think' OR `name` LIKE 'thinkphp' ) 注意閉包查詢里面的順序,而且第一個查詢方法用where或者whereOr是沒有區別的。 getTableInfo方法 使用getTableInfo可以獲取表信息,信息類型 包括 fields,type,bind,pk,以數組的形式展示,可以指定某個信息進行獲取 // 獲取`think_user`表所有信息 Db::getTableInfo('think_user'); // 獲取`think_user`表所有字段 Db::getTableInfo('think_user', 'fields'); // 獲取`think_user`表所有字段的類型 Db::getTableInfo('think_user', 'type'); // 獲取`think_user`表的主鍵 Db::getTableInfo('think_user', 'pk');
七、查詢表達示如下:
where('字段名','表達式','查詢條件');
whereOr('字段名','表達式','查詢條件');
表達式不分大小寫,支持的查詢表達式有下面幾種,分別表示的含義是:
例子:
where('id','eq',100); where('id','=',100);
七、數組查詢操作如下:
$map['name'] = 'thinkphp'; $map['status'] = 1; // 把查詢條件傳入查詢方法 Db::table('think_user')->where($map)->select(); // 助手函數 db('user')->where($map)->select();
使用字符串條件直接查詢和操作,例如:
Db::table('think_user')->where('type=1 AND status=1')->select();
使用字符串條件的時候,建議配合預處理機制,確保更加安全,例如:
Db::table('think_user')->where("id=:id and username=:name")->bind(['id'=>[1,\PDO::PARAM_INT],'name'=>'thinkphp'])->select();