【ThinkPHP6 - 连接 SQLite 及遇到的一些问题】

简易小项目,需要做个人员报道表格,后台需要查看与导出,这时就想到不用 MySQL 了,直接使用 SQLite

一、 连接配置

以下是 ThinkPHP6 的数据库连接配置



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")
);

你可能感兴趣的:(sqlite,数据库)