CodeIgniter框架同时连接多个数据库

jopen 10年前

一 、配置数据库

1. 描述:CodeIginter有一个配置文件让你存放数据库连接值(username:用户名,password:密码,database name:数据库名,等等......)      2. 文件位置:该配置文件位于application/config/database.php  3. 注意事项:除默认数据库外其他的数据库的pconnect键名对应的键值为FALSE  4. 示例:      $active_group = 'default';      $active_record = TRUE;        $db['default']['hostname'] = 'localhost';    //数据库的主机名,通常位于本机,可以表示为“localhost”      $db['default']['username'] = 'root';    //需要连接到数据库的用户名      $db['default']['password'] = '123456';    //登陆数据库的密码      $db['default']['database'] = 'db1';    //你需要连接的数据库名      $db['default']['dbdriver'] = 'mysql';    //数据库类型。例如:mysql,postgres,odbc等。必须以小写字母      $db['default']['dbprefix'] = '';     //当运行Active Record查询时数据表的前缀,它允许在一个数据库连接上安装多个CodeIgniter程序      $db['default']['pconnect'] = TRUE;    // TRUE/FALSE(boolean)-使用持续链接      $db['default']['db_debug'] = TRUE;    //TRUE/FALSE(boolean)-显示数据库错误信息      $db['default']['cache_on'] = FALSE;    //TRUE/FALSE(boolean)-数据库查询缓存是否开启。详情见CodeIgniter数据库缓存类      $db['default']['cachedir'] = '';    //数 据库查询缓存目录所在服务器 绝对路径      $db['default']['char_set'] = 'utf8';    //与数据库通信时所使用的字符集      $db['default']['dbcollat'] = 'utf8_general_ci';    //与数据库通信时所使用的字符规则      $db['default']['swap_pre'] = '';    //替换默认的dbprefix表前缀,该设置项对于分别式应用是非常有用的,你可以查询中使用由最终用户定制的表前缀      $db['default']['autoinit'] = TRUE;    //当数据库(database library)被载入的时候是否需要自动连接数据库,如果设置为FALSE, 将在首次查询前进行连接      $db['default']['stricton'] = FALSE;    //TRUE/FALSE(boolean)-是否强制使用“Strict Mode”链接,在开发程序时,使用strict SQL是一个好习惯        $db['db2']['hostname'] = 'localhost';      $db['db2']['username'] = 'root';      $db['db2']['password'] = 123456';      $db['db2']['database'] = 'db2';      $db['db2']['dbdriver'] = 'mysql';      $db['db2']['dbprefix'] = '';      $db['db2']['pconnect'] = FALSE;    //特别注意哦      $db['db2']['db_debug'] = TRUE;      $db['db2']['cache_on'] = FALSE;      $db['db2']['cachedir'] = '';      $db['db2']['char_set'] = 'utf8';      $db['db2']['dbcollat'] = 'utf8_general_ci';      $db['db2']['swap_pre'] = '';      $db['db2']['autoinit'] = TRUE;      $db['db2']['stricton'] = FALSE;

二、在model中连接数据库

1. 示例:  class test_model extends CI_Model{      var $db_connect1;      var $db_connect2;      public function __construct(){          parent::__construct();          $this->db_connect1 = $this->load->database('default', TRUE);          $this->db_connect2= $this->load->database ('db2', TRUE);      }      public function get_db1($date){          $query = $this->db_connect1->query("SELECT * FROM db1 where date='$date'");          return $query->row_array();      }      public function get_db2($date){          $query = $this->db_connect2->query("SELECT * FROM db2 where date='$date'");          return $query->row_array();      }  }