thinkphp项目需正确配置数据库连接参数才能启动数据操作,包括数据库类型、地址、名称、账号密码等,tp6.x和tp5.x路径不同但逻辑一致,并可通过db类查询验证连通性。

ThinkPHP 项目搭建完成后,数据库配置是启动数据操作的前提。核心在于正确填写连接参数,并确保框架能加载并识别这些配置。不同版本(如 TP5.x 和 TP6.x)路径和写法略有差异,但逻辑一致:告诉框架“连哪个库、用什么账号、怎么连”。
确认数据库服务已就绪
在配置前,请先确保:
- MySQL(或其他数据库)服务正在运行,比如通过 phpStudy、XAMPP 或 Docker 启动;
- 已创建目标数据库(如 thinkphp_db),字符集建议选 utf8mb4,排序规则为 utf8mb4_unicode_ci;
- 有可用的数据库账号密码,推荐使用非 root 账号,权限只需对目标库具备 SELECT/INSERT/UPDATE/DELETE 即可。
编辑 database.php 配置文件
这是最常用且推荐的方式,适用于单库或主从结构。
-
TP6.x 路径:
config/database.php(根目录下的 config 文件夹); -
TP5.x 路径:
application/database.php; - 打开该文件,返回一个关联数组,必须包含以下字段:
type → 数据库类型,如 'mysql'(也支持 pgsql、sqlite、sqlsrv、oracle 等);
hostname → 数据库服务器地址,本地常用 '127.0.0.1' 或 'localhost';
database → 数据库名,如 'thinkphp_db';
username → 登录用户名,如 'root';
password → 对应密码;
hostport → 端口,默认 MySQL 是 '3306';
charset → 字符编码,强烈建议设为 'utf8mb4',避免 emoji 存储异常;
prefix → 表前缀,如 'tp_',模型中未指定表名时会自动添加;
auto_timestamp → 可设为 true,启用后新增/更新时自动写入 create_time 和 update_time 字段。
验证配置是否生效
配置保存后,可通过简单查询测试连接是否成功:
- 在控制器中引入 Db 类:
use think\facade\Db; - 执行一条基础查询:
Db::query('SELECT VERSION()');或Db::table('user')->find(); - 若返回结果无报错(如 MySQL 版本号或用户数据),说明配置已生效;
- 若报错如 “Connection refused” 或 “Access denied”,请检查 hostname、端口、账号密码、数据库是否存在、防火墙设置等。
进阶:多库配置与动态切换
当项目需同时访问多个数据库(如用户库 + 日志库),可在 database.php 中定义 connections 数组:
- 每个子数组代表一个独立连接,例如
'log_db'和'user_db'; - 使用时通过
Db::connect('log_db')获取对应实例,再调用->name('log')->select(); - 也可结合 .env 文件管理不同环境参数,例如在 .env 中写:
DATABASE2_HOSTNAME=192.168.1.100,然后在配置中用env('database2.hostname')读取。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











