TP框架里头数据库连接怎么弄,步骤和注意点简单讲讲
- 问答
- 2026-01-02 01:20:01
- 1
在TP(ThinkPHP)框架里弄数据库连接,其实就跟你去一个新地方要先连上Wi-Fi差不多,你得知道Wi-Fi名字(数据库地址)、密码(数据库密码)这些信息,然后点一下“连接”按钮,TP框架已经帮你把“连接”按钮做好了,你只需要把正确的信息填进去就行。
第一步:找到配置文件(告诉你Wi-Fi列表在哪)
TP框架的所有数据库连接信息,都放在一个专门的配置文件里,这个文件的位置通常在:config/database.php,也可能是一个叫做 databases.php 的文件,或者在你应用目录下的 config 文件夹里,你找到这个文件打开就行,里面都是用PHP数组写的配置项。
第二步:填写连接信息(输入Wi-Fi账号密码)

打开 database.php 文件后,你会看到一个叫 connections 的数组,里面默认有一个 mysql 的配置项,这就是告诉你默认使用MySQL数据库,你需要修改的就是它里面的这些内容:
hostname:你的数据库服务器地址,如果数据库和你的网站代码在同一台电脑(服务器)上,就直接写0.0.1或者localhost,如果在别的服务器,就写那台服务器的IP地址或域名。database:你要连接的具体的数据库名字,比如你的网站数据要存到一个叫my_blog的数据库里,这里就写my_blog,这个数据库需要你提前在MySQL里创建好。username:登录数据库用的用户名,最常见的是root,但出于安全考虑,建议创建一个有特定权限的专用用户。password:对应用户名的密码,这个密码是你安装数据库时自己设置的,或者服务器提供商给你的。hostport:数据库的端口号,MySQL默认是3306,如果没改过就不用动它。charset:数据库的字符编码,为了正确显示中文,强烈建议设置为utf8mb4,这个比老的utf8支持更全的字符(比如表情符号)。
填完后的样子大概是这样(括号里是你的实际信息):
return [
'default' => 'mysql',
'connections' => [
'mysql' => [
'type' => 'mysql',
'hostname' => '127.0.0.1', // 你的数据库地址
'database' => '你的数据库名', // my_app_db
'username' => '你的用户名', // root
'password' => '你的密码', // 你的数据库密码
'hostport' => '3306',
'charset' => 'utf8mb4',
// ... 其他配置保持默认即可
],
],
];
第三步:测试连接(看看连没连上)
配置写完后,你怎么知道成功了呢?有个简单的测试方法,你可以在任何一个能执行代码的地方(比如控制器里),写下面几行代码:

use think\facade\Db;
try {
$result = Db::query('SELECT 1'); // 执行一个最简单的SQL语句
echo '数据库连接成功!';
} catch (\Exception $e) {
echo '数据库连接失败:' . $e->getMessage();
}
如果页面上显示“数据库连接成功!”,那就恭喜你,配置对了,如果报错了,它会告诉你错误信息,你就根据错误信息去检查上面第二步填的内容是不是有误。
接下来是几个需要注意的点,很重要:
-
安全第一,别泄露密码! 这个
database.php文件里包含了最重要的数据库密码。千万千万不要把这个文件上传到公开的代码仓库(比如Github)上,TP框架的.gitignore文件通常已经帮你忽略了本地配置文件,但你还是要自己检查一下,线上服务器的配置最好用环境变量来管理,这样更安全。 -
分清不同环境(本地和线上可能不一样) 你在自己电脑上开发(本地环境)和把网站放到正式服务器上(生产环境),数据库的连接信息(地址、密码等)很可能是不一样的,TP框架支持设置不同的应用模式,并为每种模式创建独立的配置文件,更常见的做法是,在服务器上直接修改
database.php文件,或者使用环境变量,确保本地配置和线上配置互不干扰。
-
连接的不是“数据库软件”,是“具体数据库” 新手容易搞混:
hostname和hostport是帮你找到数据库软件(比如MySQL服务),而database这个参数是告诉框架,你要使用这个数据库软件里面的哪一个具体的数据库,你一定要确保这个数据库是已经存在的,否则会连接失败。 -
关于编码(charset) 再次强调,
charset最好设置成utf8mb4,如果你这里设置的是utf8,而你的数据库和表是utf8mb4,或者反过来,都可能导致存进去或读出来的中文变成乱码。 -
允许多个连接(像连多个Wi-Fi) TP框架很灵活,允许你同时配置连接多个不同的数据库,你有一个主数据库用来读写,还有一个只读的从数据库,你可以在
connections数组里再添加一个配置,比如叫mysql_slave,然后在你需要的时候,通过Db::connect('mysql_slave')来指定使用这个从库连接,默认不指定的话,就用‘default’指向的那个连接(我们之前配的mysql)。 -
模型和Db类的区别 连接好数据库后,你有两种主要方式来操作数据:一种是使用
Db门面(Facade)直接写SQL或者用链式方法,比较灵活;另一种是定义模型(Model),模型更适合操作单个数据表,并且可以封装很多业务逻辑,无论你用哪种,它们底层用的都是你刚才配置好的数据库连接。
核心步骤就三步:找文件、填信息、测连接,注意点主要围绕安全、环境、配置细节和灵活用法,把这些搞明白,TP框架的数据库连接就基本没问题了。
本文由盘雅霜于2026-01-02发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:https://haoid.cn/wenda/72782.html
