我需要连接两个数据库,我可以在我编写的控制器和库中执行此操作。由于一些奇怪的原因(我假设我只是在这里错过了一些简单的东西)我无法让它突然在模型中工作。我已经在CI用户指南中阅读了数据库类。
我在加载pew时尝试引用$ pew($ this-> pew =& $ this-> load-> database('pew',TRUE))无效。
有什么想法,建议吗?谢谢!
错误 的
PHP Fatal error: Call to a member function query() on a non-object in
/Sites/CI/nyan/application/models/pewpewmodel.php on line 15
第15行
$this->pew->query('SELECT * FROM ExtractEvent'); //simplified for testing
database.php中:
$active_group = 'nyan';
$active_record = TRUE;
$db['nyan']['hostname'] = 'catcatcat';
$db['nyan']['username'] = 'mew';
$db['nyan']['password'] = 'meow';
$db['nyan']['database'] = 'meow';
$db['nyan']['dbdriver'] = 'mysql';
$db['pew']['hostname'] = 'jujubees';
$db['pew']['username'] = 'qwop';
$db['pew']['password'] = 'qwop';
$db['pew']['database'] = 'nom';
$db['pew']['dbdriver'] = 'mssql';
模型pewpewmodel.php
private $pew;
function __construct()
{
parent::__construct();
$this->pew = $this->load->database('pew', TRUE);
}
function get_forms_by_date($id = NULL, $Year = NULL, $Month = NULL, $Day = NULL)
{
$this->pew->query('SELECT * FROM ExtractEvent'); //simplified for testing
}
控制器nomnom.php
public function index()
{
$this->load->model('pewmodel');
$data['Forms'] = $this->pewmodel->get_forms_by_date($this->session->userdata('Username'), date('Y'), date('n'), date('j'));
$this->load->view('common/header', $data['Forms']);
$this->load->view('home/index');
$this->load->view('common/footer');
}
查看index.php
<pre>
<?php print_r($Forms); ?>
</pre>
答案 0 :(得分:2)
这对我有用。
[来自模型构造函数]
$db['hostname'] = 'localhost';
$db['username'] = 'root';
$db['password'] = '';
$db['database'] = 'my_database';
$db['dbdriver'] = 'mysql';
$db['dbprefix'] = '';
$db['pconnect'] = TRUE;
$db['db_debug'] = TRUE;
$db['cache_on'] = FALSE;
$db['cachedir'] = '';
$db['char_set'] = 'latin1';
$db['dbcollat'] = 'latin1_bin';
$db['swap_pre'] = '';
$db['autoinit'] = TRUE;
$db['stricton'] = FALSE;
$this->load->database($db, FALSE, TRUE);
// False=don't return db object
// True =use as active record, so it replaces default $this->db
希望这有助于编码人员像我一样搜索Google。
答案 1 :(得分:1)
$this->pew = $this->load->database('pew', TRUE);
加载数据库配置中不存在的数据库。
答案 2 :(得分:0)
当我通过TRUE连接如下所示时,我收到500错误。我假设(是的,我知道)我在连接方面遇到了同样的问题。事实上,从一开始就告诉它是一个ID10T错误。我错过了我本地机器上的mssql.so库以及我正在测试的另一个库。
$this->pew =& $this->load->database('pew', TRUE)
我为浪费时间绅士而道歉。