基本使用:使用\think\Db类我们就可以直接使用数据库运行原生SQL操作了,支持query(查询操作)和execute(写入操作)方法。
查询构造器
查询数据:
查询一个数据使用
// table方法必须指定完整的数据表名
Db::table(‘think_user‘)->where(‘id‘,1)->find();
查询数据集使用:
Db::table(‘think_user‘)->where(‘status‘,1)->select();
如果设置了数据表前缀参数的话,可以使用
Db::name(‘user‘)->where(‘id‘,1)->find(); Db::name(‘user‘)->where(‘status‘,1)->select();
助手函数
db(‘user‘)->where(‘id‘,1)->find(); db(‘user‘)->where(‘status‘,1)->select();
值和列查询
查询某个字段的值可以用
// 返回某个字段的值 Db::table(‘think_user‘)->where(‘id‘,1)->value(‘name‘);
查询某一列的值可以用
// 返回数组 Db::table(‘think_user‘)->where(‘status‘,1)->column(‘name‘);// 指定索引 Db::table(‘think_user‘)->where(‘status‘,1)->column(‘name‘,‘id‘); Db::table(‘think_user‘)->where(‘status‘,1)->column(‘id,name‘); // 同tp3的getField
添加数据
添加一条数据
$data = [‘foo‘ => ‘bar‘, ‘bar‘ => ‘foo‘]; Db::table(‘think_user‘)->insert($data);
insert 方法添加数据成功返回添加成功的条数,insert 正常情况返回 1
添加数据后如果需要返回新增数据的自增主键,可以使用getLastInsID方法:
Db::name(‘user‘)->insert($data); $userId = Db::name(‘user‘)->getLastInsID();
或者直接使用insertGetId方法新增数据并返回主键值:
添加多条数据
$data = [ [‘foo‘ => ‘bar‘, ‘bar‘ => ‘foo‘], [‘foo‘ => ‘bar1‘, ‘bar‘ => ‘foo1‘], [‘foo‘ => ‘bar2‘, ‘bar‘ => ‘foo2‘]]; Db::name(‘user‘)->insertAll($data);