本文介绍了Codeigniter连接两个数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用 codeigniter 2.1.4
。
我将会话记录到 database1
,并查询 database2
数据。但是会话将找不到 database2
表。我不想记录到 database2
的会话。
I use codeigniter 2.1.4
.I record my session to my database1
, and I query database2
data. But session will not found database2
table. I don't want to record session to database2
.
错误消息。
A Database Error Occurred
Error Number: 1146
Table 'database2.sessions' doesn't exist
SELECT * FROM (`sessions`) WHERE `session_id` = 'fd384ac44b1fe1c073cfc23185esdfda' AND `user_agent` = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.76 Safari/537.36'
Filename: libraries/Session.php
Line Number: 213
我的 database.php
。
$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = 'password';
$db['default']['database'] = 'database1';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
$db['database2']['hostname'] = 'localhost';
$db['database2']['username'] = 'root';
$db['database2']['password'] = 'password';
$db['database2']['database'] = 'database2';
$db['database2']['dbdriver'] = 'mysql';
$db['database2']['dbprefix'] = '';
$db['database2']['pconnect'] = TRUE;
$db['database2']['db_debug'] = TRUE;
$db['database2']['cache_on'] = FALSE;
$db['database2']['cachedir'] = '';
$db['database2']['char_set'] = 'utf8';
$db['database2']['dbcollat'] = 'utf8_general_ci';
$db['database2']['swap_pre'] = '';
$db['database2']['autoinit'] = FALSE;
$db['database2']['stricton'] = FALSE;
我的 config.php
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_expire_on_close'] = FALSE;
$config['sess_encrypt_cookie'] = TRUE;
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 300;
这是我的查询 database2
代码。 / p>
That is my query database2
code.
function ip_get($ip) {
$db_rentcar = $this->load->database('rent_car', TRUE);
$db_rentcar->from('ip');
$db_rentcar->where('ip_ip', $ip);
if($db_rentcar->count_all_results() == 1) {
$query = $db_rentcar->get_where('ip', array('ip_ip' => $ip));
return $query->row_array();
} else {
return array('ip_name' => 'user1', 'ip_type' => 1);
}
}
我已经尝试将此代码添加到 Session.php
。
I have try to add this code to Session.php
.
$this->CI->load->database('database1', TRUE);
错误变为。该如何解决呢?
The error become. How to solve the problem? Thanks.
An Error Was Encountered
You have specified an invalid database connection group.
推荐答案
我找到了答案。
function simple_query($sql)
{
if ( ! $this->conn_id)
{
$this->initialize();
}
$this->db_select(); // Add this code
return $this->_execute($sql);
}
参考
这篇关于Codeigniter连接两个数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!