
Phpcms 支持多数据库配置,可以在项目中连接多个数据库,方便进行跨库操作。实现方式主要通过修改系统配置文件并调用不同的数据库实例。
1. 配置多数据库信息
打开 phpcms/config/database.php 文件,在该文件中定义多个数据库连接参数。默认已有 ‘default’ 配置,可新增其他数据库连接:
return array ( ‘default’ => array ( ‘hostname’ => ‘localhost’, ‘database’ => ‘db1’, ‘username’ => ‘root’, ‘password’ => ‘123456’, ‘tablepre’ => ‘v9_’, ‘charset’ => ‘utf8’, ‘type’ => ‘mysql’, ‘debug’ => true, ), ‘db2’ => array ( ‘hostname’ => ‘localhost’, ‘database’ => ‘db2’, ‘username’ => ‘root’, ‘password’ => ‘123456’, ‘tablepre’ => ‘p_’, ‘charset’ => ‘utf8’, ‘type’ => ‘mysql’, ‘debug’ => true, ), ‘db3’ => array ( ‘hostname’ => ‘192.168.1.100’, ‘database’ => ‘remote_db’, ‘username’ => ‘user’, ‘password’ => ‘pass’, ‘tablepre’ => ”, ‘charset’ => ‘utf8’, ‘type’ => ‘mysql’, ‘debug’ => true, ),);
以上配置定义了三个数据库连接:default(默认)、db2、db3,支持不同主机、库名和表前缀。
2. 在代码中调用指定数据库
在模块或控制器中,使用 pc_base::load_model() 加载模型后,可通过 $this->set_db() 切换数据库连接。
立即学习“PHP免费学习笔记(深入)”;
示例:
// 加载内容模型$this->content_db = pc_base::load_model(‘content_model’);// 切换到 db2 数据库$this->content_db->set_db(‘db2’);<p>// 执行查询$data = $this->content_db->query("SELECT * FROM p_news LIMIT 5")->fetch_all();</p>
若需直接操作数据库而无需模型,可使用数据库类手动连接:
$db = pc_base::load_app_class(‘db_factory’)->get_instance(‘db2’);$result = $db->select(‘*’, ‘p_news’, ”, ”, ”, ‘id’);print_r($result);
3. 注意事项与建议
使用多数据库时需注意以下几点:
确保 database.php 中的配置语法正确,避免缺少逗号或引号不同数据库的表前缀可能不同,SQL 查询时注意表名匹配远程数据库连接需保证网络通畅和权限开放频繁切换数据库可能影响性能,建议合理设计数据结构减少跨库操作调试模式开启后会记录 SQL 日志,有助于排查连接问题
基本上就这些。只要配置正确,在 Phpcms 中使用多数据库并不复杂,关键是管理好连接标识和模型调用逻辑。

评论(0)