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','<',10)->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、< 小于(<) ELT、<= 小于即是(<=) LIKE 模糊盘问 [NOT] BETWEEN (不在)区间盘问 [NOT] IN (不在)IN 盘问 [NOT] NULL 盘问字段是否(不)是NULL [NOT] EXISTS EXISTS盘问 EXP 表达式盘问,支持SQL语法 > time 时间比较 < time 时间比较 between time 时间比较 notbetween time 时间比较
登录后复制
以上就是Thinkphp5.0对数据库的操作要领有哪些的详细内容,更多请关注本网内其它相关文章!