ThinkPHP5.1中数据库配置通过Config类读取,config('database.xxx')获取各项参数,多环境时优先加载.env变量,敏感信息如密码应避免直接读取。

在 ThinkPHP5.1 中,数据库配置参数默认定义在 config/database.php 文件中,可通过框架的配置系统直接读取,无需手动解析 PHP 文件。
通过 Config 类读取数据库配置
ThinkPHP 提供了全局 Config 类(或助手函数 config())来获取任意配置项。数据库相关配置位于 database 配置分组下:
-
config('database.type')—— 获取数据库类型(如 mysql、pgsql) -
config('database.hostname')—— 获取主机地址 -
config('database.database')—— 获取数据库名 -
config('database.username')—— 获取用户名 -
config('database.password')—— 获取密码 -
config('database.port')—— 获取端口(默认 3306)
注意多环境配置下的读取逻辑
若项目启用了多环境(如 .env 文件),TP5.1 会优先加载 .env 中的 DB_TYPE、DB_HOST 等变量,并自动映射到 database 配置中。此时调用 config('database.hostname') 返回的是 .env 中的值,而非 database.php 的默认值。可检查 config/app.php 中的 env' => true 是否启用环境变量支持。
在模型或控制器中安全使用示例
不建议在业务逻辑中频繁读取数据库连接参数(尤其密码),如确需调试或动态切换,推荐只读取非敏感字段:
立即学习“PHP免费学习笔记(深入)”;
// 控制器中
$host = config('database.hostname');
$port = config('database.port');
// 避免这样写:$pwd = config('database.password'); // 安全风险
若需完整连接信息用于日志或监控,建议封装成独立服务类,并过滤敏感键(如 password、username)。
验证配置是否生效的小技巧
可在命令行运行 php think run 启动内置服务器后,临时加一段调试代码:
dump(config('database'));
查看输出结果,确认各项参数是否按预期加载(特别留意 hostname、database 是否被 .env 覆盖)。



















