cakephp连接多个数据库和使用数据库的表

今天一同事问我cakeph连接多数据库的方法,平时没用到,就给他查了查cakephp的官方文档和其他资料,整理一份如下:

在cakephp的app/config/database.php写cakephp连接数据库的基本配置上有如下的配置,这样写多个数据库,

public $default = array(
  'datasource' => 'Database/Mysql',
  'persistent' => false,
  'host' => 'localhost',
  'login' => 'user',
  'password' => 'password',
  'database' => 'database',
  'prefix' => 'database_name',
  //'encoding' => 'utf8',
 );

 public $test = array(
  'datasource' => 'Database/Mysql',
  'persistent' => false,
  'host' => 'localhost',
  'login' => 'user',
  'password' => 'password',
  'database' => 'test_database_name',
  'prefix' => '',
  //'encoding' => 'utf8',
 );

 

然后在model里用调用test这个数据库,当前操作的数据库就为test数据库了

<?php
class Example extends AppModel {
    public $useDbConfig = test;
}
 
之后又在网上查找发现一边cakephp动态调用数据库的方法也不错 贴出来给大家 
http://my.opera.com/jlake/blog/2008/03/11/cakephp
 

<?php
class DATABASE_CONFIG {
 //local
    public $local = array('driver' => 'mysql',
        'connect' => 'mysql_connect',
        'host' => 'localhost',
        'login' => 'root',
        'password' => ",
        'database' => 'local',
        'prefix' => '');

    //dev server
    public $dev = array('driver' => 'mysql',
        'connect' => 'mysql_connect',
        'host' => 'mysql.dev.com',
        'login' => 'dev',
        'password' => 'password',
        'database' => 'dev',
        'prefix' => '');

    //live server
    public $live = array('driver' => 'mysql',
        'connect' => 'mysql_connect',
        'host' => 'mysql.live.com',
        'login' => 'live',
        'password' => 'password',
        'database' => 'live',
        'prefix' => ");

    //switch between configs
    var $default = array();
    var $test = array();
    function __construct() {

        //wildcard the subdomains
        $host_r = explode('.', $_SERVER['SERVER_NAME']);
        if(count($host_r)>2) while(count($host_r)>2)array_shift($host_r);
        $mainhost = implode('.', $host_r);

        //switch between servers
        switch(strtolower($mainhost)) {
            case 'localhost':
                $this->default = $this->local;
                break;
            case 'dev.com':
                $this->default = $this->dev;
                break;
            case 'live.com':
                $this->default = $this->live;
                break;
            default:
                $this->default = $this->local;
        }
    }

    //php 4 compatibility
    function DATABASE_CONFIG() {
        $this->__construct();
    }
}
?>

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值