一、查询数据操作如下:
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();