服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|JavaScript|易语言|

服务器之家 - 编程语言 - PHP教程 - Yii框架实现多数据库配置和操作的方法

Yii框架实现多数据库配置和操作的方法

2021-05-21 16:16陈小峰_iefreer PHP教程

这篇文章主要介绍了Yii框架实现多数据库配置和操作的方法,结合实例形式分析了Yii框架多数据库的配置技巧与相关操作注意事项,需要的朋友可以参考下

本文实例讲述了Yii框架实现多数据库配置和操作的方法。分享给大家供大家参考,具体如下:

Yii的默认配置为一个数据库,不过可以很容易的支持多个数据库的操作,

这为按业务分割数据库提供了基础设施。如下所示:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//cms DB connection
'db' => (defined('DB_CONNECTION') ? array(
  'connectionString' => DB_CONNECTION,
  'username' => DB_USER,
  'password' => DB_PWD,
  'charset' => 'utf8',
  'emulatePrepare' => true,
  'enableParamLogging' => true,
  'schemaCachingDuration' => 3600, //cache table schema
    ) : array()),
//member DB connection
'db_member' => (defined('DB_CONNECTION_MEMBER') ? array(
  'class'=> 'CDbConnection' ,
  'connectionString' => DB_CONNECTION_MEMBER,
  'username' => DB_USER_MEMBER,
  'password' => DB_PWD_MEMBER,
  'charset' => 'utf8',
  'emulatePrepare' => true,
  'enableParamLogging' => true,
  'schemaCachingDuration' => 3600, //cache table schema
    ) : array()),

然后在模型中重载getDbConnection函数,比如:

?
1
2
3
4
5
6
class Point extends CActiveRecord {
  public function getDbConnection() {
     return Yii::app()->db_member;
  }
  ...
}

如果有很多模型会使用db_member, 可以从CActiveRecord派生一个子类:CMemberActiveRecord, 把getDbConnection的重写放在该AR的子类中。

然后模型都从该CMemberActiveRecord中派生。

多数据库配置遇到的一个典型的错误是:

Object configuration must be an array containing a class element

原因是配置中非$db的其他数据库没有设置class属性,添加该属性并设置其值为CDbConnection即可。

参考链接:

http://yiihaa.com/models-and-multiple-database-connections

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

延伸 · 阅读

精彩推荐
  • PHP教程浅析51个PHP处理字符串的函数

    浅析51个PHP处理字符串的函数

    以下是对51个PHP处理字符串的函数进行了详细的分析介绍,包括,计算字符串长度、分割字符串、查找字符串等等各个方面。需要的朋友可以过来参考下 ...

    PHP教程网1472020-05-12
  • PHP教程PHP URL参数获取方式的四种例子

    PHP URL参数获取方式的四种例子

    这篇文章主要介绍了PHP URL参数获取方式的四种例子,php url参数解析的4种方法,需要的朋友可以参考下 ...

    PHP技术网3792020-06-14
  • PHP教程php中http_build_query 的一个问题

    php中http_build_query 的一个问题

    http_build_query 远程攻击者可以利用漏洞获得敏感内存信息。请大家谨慎使用 ...

    PHP教程网2702019-12-28
  • PHP教程php ajax confirm 删除实例详解

    php ajax confirm 删除实例详解

    这篇文章主要介绍了php ajax confirm 删除,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编...

    MoonyHee2732019-06-05
  • PHP教程让Nginx支持ThinkPHP的URL重写和PATHINFO的方法分享

    让Nginx支持ThinkPHP的URL重写和PATHINFO的方法分享

    ThinkPHP支持通过PATHINFO和URL rewrite的方式来提供友好的URL,只需要在配置文件中设置 'URL_MODEL' => 2 即可。在Apache下只需要开启mod_rewrite模块就可以正常访问了...

    PHP教程网4522019-12-09
  • PHP教程php实现多城市切换特效

    php实现多城市切换特效

    本文给大家主要分享的是在PHP中如何获取用户IP地址、PHP根据IP判断用户所在城市以及PHP根据IP实现城市切换或跳转的问题。...

    PHP教程网5382020-11-16
  • PHP教程PHP中生成UUID自定义函数分享

    PHP中生成UUID自定义函数分享

    这篇文章主要介绍了PHP中生成UUID自定义函数分享,本文提供的代码可以生成一个 UUID version 4,,需要的朋友可以参考下...

    PHP之家4042020-09-27
  • PHP教程PHP实现多条件查询实例代码

    PHP实现多条件查询实例代码

    在我们的网站设计过程中,经常会用到多条件查询,本文的源码是一个二手房屋查询的例子。在本例中,我们要实现能够通过地理位置,物业类型,房屋价...

    php教程网2932019-11-04