thinkphp5-数据库
2021/10/30 19:13:04
本文主要是介绍thinkphp5-数据库,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
基本使用
mysql生成数据库
create database tp5; use tp5;
mysql生成数据表
create table user( id int unsigned NOT NULL AUTO_INCREMENT, name varchar(100), status tinyint(2), primary key(id) )engine=innodb charset=utf8mb4;
数据库配置
<?php return [ // 数据库类型 'type' => 'mysql', // 服务器地址 'hostname' => '127.0.0.1', // 数据库名 'database' => 'tp5', // 用户名 'username' => 'root', // 密码 'password' => 'root_123456', // 端口 'hostport' => '', // 连接dsn 'dsn' => '', // 数据库连接参数 'params' => [], // 数据库编码默认采用utf8 'charset' => 'utf8', // 数据库表前缀 'prefix' => '', // 数据库调试模式 'debug' => true, // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器) 'deploy' => 0, // 数据库读写是否分离 主从式有效 'rw_separate' => false, // 读写分离后 主服务器数量 'master_num' => 1, // 指定从服务器序号 'slave_no' => '', // 自动读取主库数据 'read_master' => false, // 是否严格检查字段是否存在 'fields_strict' => true, // 数据集返回类型 'resultset_type' => 'array', // 自动写入时间戳字段 'auto_timestamp' => false, // 时间字段取出后的默认时间格式 'datetime_format' => 'Y-m-d H:i:s', // 是否需要进行SQL性能分析 'sql_explain' => false, ];
命名空间
use think\Db;
添加数据
Db::execute('insert into user (name,status) values (:name,:status)',['name'=>'huyongjian1','status'=>1]); Db::execute('insert into user (name,status) values (:name,:status)',['name'=>'huyongjian2','status'=>1]); Db::execute('insert into user (name,status) values (:name,:status)',['name'=>'huyongjian3','status'=>1]);
获取数据
$user = Db::query('select * from user where id=:id',['id'=>1]); dump($user);
查询构造器
查询数据
获取一条数据
$user = Db::table('user')->where('id',2)->find(); dump($user);
获取多条数据
$users = Db::table('user')->where('status',1)->select(); dump($users);
添加数据
添加一条数据
$data = ['name' => 'huyongjian3', 'status' => 1]; Db::table('user')->insert($data);
添加多条数据
$data = [ ['name' => 'huyongjian4', 'status' => 1], ['name' => 'huyongjian5', 'status' => 0], ['name' => 'huyongjian6', 'status' => 1], ]; Db::table('user')->insertAll($data);
更新数据
Db::table('user')->where('id', 1)->update(['name' => 'huyongjian1']);
删除数据
Db::table('user')->delete(1);
Db::table('user')->where('id',1)->delete();
聚合查询
Db::table('user')->count(); Db::table('user')->max('id'); Db::table('user')->min('id'); Db::table('user')->avg('id');
时间查询
Db::table('user')->whereTime('birthday', '>=', '1970-10-1')->select(); // 小于某个时间 Db::table('user')->whereTime('birthday', '<', '2000-10-1')->select(); // 时间区间查询 Db::table('user')->whereTime('birthday', 'between', ['1970-10-1', '2000-10-1'])->select(); // 不在某个时间区间 Db::table('user')->whereTime('birthday', 'not between', ['1970-10-1', '2000-10-1'])->select();
查询事件
Query::event('before_select',function($options,$query){ //$options 当前查询数组信息 //$query query对象 //事件处理 });
事务
自动事务处理
Db::transaction(function(){ Db::table('user')->find(1); Db::table('user')->delete(1); });
手动事务处理
// 启动事务 Db::startTrans(); try{ Db::table('user')->find(1); Db::table('user')->delete(1); // 提交事务 Db::commit(); } catch (\Exception $e) { // 回滚事务 Db::rollback(); }
这篇关于thinkphp5-数据库的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-19php8的协程和hyperf的协程有什么区别?-icode9专业技术文章分享
- 2024-12-19php8 的fiber是什么?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-11-29使用PHP 将ETH账户的资产汇集到一个账户
- 2024-11-23怎么实现安卓+php 热更新方案?-icode9专业技术文章分享
- 2024-11-22PHP 中怎么实现判断多个值是否为空、null 或者为 false?-icode9专业技术文章分享
- 2024-11-11开源 PHP 商城项目 CRMEB 二次开发和部署教程
- 2024-11-09怎么使用php在kaufland平台刊登商品?-icode9专业技术文章分享
- 2024-11-05PHP的抽象类和接口是什么,有什么区别-icode9专业技术文章分享