简易小项目,需要做个人员报道表格,后台需要查看与导出,这时就想到不用
MySQL
了,直接使用SQLite
。
一、 连接配置
以下是
ThinkPHP6
的数据库连接配置
<?php
return [
// 默认使用的数据库连接配置
'default' => 'sqlite',
// 自定义时间查询规则
'time_query_rule' => [],
// 自动写入时间戳字段
// true为自动识别类型 false关闭
// 字符串则明确指定时间字段类型 支持 int timestamp datetime date
'auto_timestamp' => true,
// 时间字段取出后的默认时间格式
'datetime_format' => 'Y-m-d H:i:s',
// 时间字段配置 配置格式:create_time,update_time
'datetime_field' => '',
// 数据库连接配置信息
'connections' => [
'sqlite' => [
// 数据库类型
'type' => 'sqlite',
// 数据库名 # 这里替换成自己的 SQLite 数据库文件路径
'dsn' => 'sqlite:/doc/sql/sqlite.db',
// 表前缀
'prefix' => 'um_',
],
// 更多的数据库配置信息
],
'mysql' => [
// 替换为自己的配置值, 用 env 进行配置,参考写法 'charset' => env('database.charset', 'utf8'),
// 数据库类型
'type' => mysql,
// 服务器地址
'hostname' => '1.1.1.1',
// 数据库名
'database' => 'datebase_name',
// 用户名
'username' => 'root',
// 密码
'password' => 'wiS@8!ID*@!AUA!DFW231',
// 端口
'hostport' => '3306',
// 数据库连接参数
'params' => [],
// 数据库编码默认采用utf8
'charset' => 'utf8',
// 数据库表前缀
'prefix' => 'sg_',
// 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
'deploy' => 0,
// 数据库读写是否分离 主从式有效
'rw_separate' => false,
// 读写分离后 主服务器数量
'master_num' => 1,
// 指定从服务器序号
'slave_no' => '',
// 是否严格检查字段是否存在
'fields_strict' => true,
// 是否需要断线重连
'break_reconnect' => false,
// 监听SQL
'trigger_sql' => true,
// 开启字段缓存
'fields_cache' => false,
],
];
二、问题解决
8 attempt to write a readonly database
将你的数据库文件设置为可读可写可执行,777
14 unable to open database file
将你的数据库存放文件的路径也要设置可读可写可执行,777
设置自增id
,创建表CREATE TABLE "um_user_record" ( "id" INTEGER NOT NULL, -- 自增id "sn" INTEGER(11) NOT NULL, -- 批次号 "declare_unit" VARCHAR(255) NOT NULL, -- 申报单位 "unit_contact" VARCHAR(50) NOT NULL, -- 申报单位联系人 "unit_phone" VARCHAR(16) NOT NULL, -- 申报单位联系电话 "image" TEXT NOT NULL, -- 申报记录图片 "created_at" INTEGER(11) NOT NULL, -- 新增时间 PRIMARY KEY ("id") );