公海彩船

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对数据库的操作要领有哪些的详细内容,更多请关注本网内其它相关文章!

免责申明:以上展示内容来源于相助媒体、企业机构、网友提供或网络收集整理,版权争议与本站无关,文章涉及见解与看法不代表公海彩船滤油机网官方立场,请读者仅做参考。本文接待转载,转载请说明来由。若您认为本文侵犯了您的版权信息,或您发明该内容有任何涉及有违公德、冒犯执法等违法信息,请您立即联系公海彩船实时修正或删除。

相关新闻

联系公海彩船

18523999891

可微信在线咨询

事情时间:周一至周五,9:30-18:30,节假日休息

QR code
网站地图网站地图