Thinkphp5.0数据库相关操作(Db类)
数据库配置
数据库配置文件(application/database.php)在这里配置好参数
数据库操作之原生查询(SQL查询)使用query和execute两个方法,分别用于查询和写入查询之前要先引入Db
use\think\Db;
插入数据$result=Db::execute('insert into test (name,status) values("张三",1)');
修改数据$result=Db::execute('update test set name="zhangsan",status=0 where id=1');
删除数据$result=Db::execute('delete from test where id=1');
查询数据$result=Db::query('select * from test');dump($result);
query方法用于查询,默认情况是返回数组集(二维数组);execute方法的返回值是影响的行数。数据库操作之查询构造器
5.0提供了数据库查询构造器,可以更方便执行数据库操作,查询构造器基于PDO实现,对不同的数据库驱动都是统一的语法。
插入记录$result=Db::table('test')->insert(['name'=>'黄晓明','status'=>1]);
更新记录$result=Db::table('test')->where('id',3)->update(['name'=>'刘德华','status'=>0]);
查询数据$result=Db::table('test')->select();$result=Db::table('test')->where('id',3)->select();
$result=Db::table('test')->where('status',1)->find();
删除数据$result=Db::table('test')->where('id',3)->delete();
table方法可以改为name方法,写法一样,如果数据库表设置了前缀,用table方法一定要写完整表名,name方法可以写省略前缀。
查询的select()方法可以换成find()方法,两者区别是select()方法返回的是数据集,find()方法返回的是满足条件的第一条记录。
系统还提供了助手函数db,可以简化查询代码
$db=db('test');
插入记录$db->insert(['name'=>'黎明','status'=>1]);
更新记录$db->where('id',4)->update(['name'=>'刘德华','status'=>2]);
db里面的表名如果有前缀,可以不要写,助手函数默认会每次重新连接数据库,尽量避免多次调用。
其他查询、删除也一样。
链式操作
$list=Db::name('test') ->where('status',1) ->field('id','name') ->order('id','desc') ->limit(2) ->select();
dump($list);
除了select要写在最后面,其他操作的不分先后,field是要查询的字段,order是排序,limit是查询的记录行数。
查询表达式
模糊查询$result=Db::name('test')->where('name','like','%明%')->select();
区间查询$result=Db::name('test')->where('id','BETWEEN',[2,4])->select();
表达式大小写都可以。
添加数据
一次性插入多条数据
$data=[ ['name'=>'张三','status'=>1], ['name'=>'李四','status'=>2], ];
$result=Db::name('test')->insertAll($data);dump($result);
添加多条数据直接向Db类的insertAll方法传入需要添加的数据即可。
更新数据
更新某个字段的值$result=Db::name('test')->where('id',4)>setField('name','thinkphp');
自增某个字段的值$result=Db::name('test')->where('id',4)->setInc('status');
自减某个字段的值$result=Db::name('test')->where('id',4)->setDec('status',2);
setField方法返回的是影响的条数,没有修改任何数据字段返回0;
setInc/setDec如不加第二个参数,默认值为1。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现