在 DedeCMS 中,连接数据库的核心文件是 common.inc.php,这个文件通常位于网站的根目录下,或者在安装后移动到了 /include/ 目录下(具体位置取决于你的安装配置)。
核心文件:common.inc.php
这个文件是 DedeCMS 的核心配置文件之一,它包含了网站运行所需的基本信息,其中最重要的就是数据库连接信息,当你访问网站任何一个页面时,只要这个页面需要调用数据库(比如读取文章、列表等),common.inc.php 文件都会被最先加载,从而建立起与数据库的连接。
数据库连接信息详解
打开 common.inc.php 文件,你会找到类似下面的代码段(具体变量名可能因版本略有不同,但含义一致):
<?php // ... 其他代码 ... //数据库连接信息 $cfg_dbhost = 'localhost'; // 数据库服务器 $cfg_dbname = 'dedecmsv57'; // 数据库名 $cfg_dbuser = 'root'; // 数据库用户名 $cfg_dbpwd = 'password'; // 数据库密码 $cfg_dbprefix = 'dede_'; // 数据库表前缀 $cfg_db_language = 'gbk'; // 数据库编码,常用 gbk 或 utf8 // ... 其他代码 ... ?>
我们来逐一解释这些参数的含义:
| 参数名 | 含义 | 示例 | 说明 |
|---|---|---|---|
$cfg_dbhost |
数据库主机地址 | localhost |
通常本地数据库是 localhost,如果数据库在另一台服务器上,则需要填写服务器的 IP 地址或域名。 |
$cfg_dbname |
要连接的数据库名称 | dedecmsv57 |
你在 MySQL 中创建的数据库的名称。 |
$cfg_dbuser |
数据库用户名 | root |
具有访问 $cfg_dbname 数据库权限的用户名。 |
$cfg_dbpwd |
数据库密码 | password |
对应用户名的密码。这是最重要的安全信息,务必保护好! |
$cfg_dbprefix |
数据库表前缀 | dede_ |
DedeCMS 安装时可以自定义的表名前缀,这样做是为了避免在同一数据库中安装多个 DedeCMS 站点时表名冲突。 |
$cfg_db_language |
数据库字符集 | gbk 或 utf8 |
指定数据库的字符编码,必须与你的数据库实际编码一致,否则会出现乱码,现在新站推荐使用 utf8。 |
连接数据库的代码逻辑
在 common.inc.php 文件中,定义了这些变量后,紧接着会有实际的数据库连接和选择数据库的代码,它通常使用 PHP 的 mysqli 或 mysql(旧版)扩展。
以 mysqli 为例,代码逻辑大致如下:
// 1. 连接数据库服务器
// @ 是为了屏蔽可能产生的警告信息,我们自己处理错误
if(!function_exists('mysql_connect')) {
$link = mysqli_connect($cfg_dbhost, $cfg_dbuser, $cfg_dbpwd);
} else {
// ... 兼容旧版本的代码 ...
}
// 2. 选择要操作的数据库
mysqli_select_db($link, $cfg_dbname);
// 3. 设置数据库编码
mysqli_query($link, "SET NAMES '" . $cfg_db_language . "'");
// ... 其他初始化操作 ...
这段代码的作用就是:
- 使用
mysqli_connect()函数,根据前面定义的$cfg_dbhost,$cfg_dbuser,$cfg_dbpwd连接到 MySQL 服务器。 - 连接成功后,使用
mysqli_select_db()函数选择要操作的$cfg_dbname数据库。 - 执行
SET NAMES命令,确保后续的数据库查询和返回数据的字符编码正确,防止乱码。
如何修改数据库连接信息?
当你需要修改数据库连接信息时(更换服务器、修改密码等),只需编辑 common.inc.php 文件,找到对应的变量并修改其值即可。
修改步骤:
- 使用 FTP 或文件管理器 登录到你的网站服务器。
- 找到
common.inc.php文件(通常在网站根目录或/include/目录)。 - 下载 该文件到你的本地电脑。
- 用文本编辑器(如 VS Code, Sublime Text, Notepad++ 等)打开文件。
- 修改
$cfg_dbhost,$cfg_dbname,$cfg_dbuser,$cfg_dbpwd等变量为你新的数据库信息。 - 保存 文件。
- 上传 修改后的
common.inc.php文件回服务器,覆盖原文件。
⚠️ 重要提示:
- 备份! 在修改任何核心文件之前,请务必备份原文件。
- 权限: 确保上传后的文件权限正确(通常是 644)。
- 编码: 如果你的网站是 UTF-8 编码,请确保
common.inc.php文件本身也以 UTF-8 无 BOM 格式保存,否则可能导致页面乱码。
其他相关文件
虽然 common.inc.php 是核心,但了解其他相关文件也有助于你更全面地理解 DedeCMS 的数据库操作。
-
/include/dedesql.class.php: 这是 DedeCMS 的一个核心数据库操作类,它封装了所有对数据库的增删改查操作,你在网站的其他 PHP 文件中看到的($dsql)对象,就是在这个类中实例化的。common.inc.php负责提供连接信息,而dedesql.class.php负责执行具体的 SQL 语句。 -
data/config.cache.inc.php: 这个文件通常由系统自动生成,用于缓存一些全局配置信息,数据库连接信息也可能被缓存到这里,以提高访问速度,如果修改common.inc.php后网站仍然无法连接,可以检查或删除这个缓存文件,让系统重新生成。
| 问题 | 答案 |
|---|---|
| DedeCMS链接数据库的文件是哪个? | common.inc.php |
| 这个文件在哪里? | 通常在网站根目录或 /include/ 目录下。 |
| 如何修改数据库连接信息? | 编辑 common.inc.php 文件,修改 $cfg_dbhost, $cfg_dbname, $cfg_dbuser, $cfg_dbpwd 等变量。 |
| 修改后网站还是连不上怎么办? | 检查修改的信息是否正确。 2. 检查数据库服务是否开启。 3. 检查数据库用户是否有对应数据库的权限。 4. 检查 data/config.cache.inc.php 是否有缓存,尝试删除它。 5. 确保 common.inc.php 文件编码为 UTF-8 无 BOM(如果是 UTF-8 网站)。 |
