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(); }