我需要连接许多数据库 database.php中的主要连接
没有问题但另一个连接必须在Model
中我使用这个类
<?php
class user_model extends CI_Model {
public function test()
{
$specific['hostname'] = "localhost";
$specific['username'] = "root";
$specific['password'] = "";
$specific['database'] = "ci_forsyria";
$specific['dbdriver'] = "mysql";
$specific['dbprefix'] = "";
$specific['pconnect'] = FALSE;
$specific['db_debug'] = TRUE;
$specific['cache_on'] = FALSE;
$specific['cachedir'] = "";
$specific['char_set'] = "utf8";
$specific['dbcollat'] = "utf8_general_ci";
$this->load->database($specific);
//get data using datamapper
$o = new db_user();
$array = array();
$o->where($array)->get();
echo $num_rows = $o->result_count();
}
}
?>
但连接不起作用 它仍然与主数据库连接
错误号码:1146 表'countries.ci_users'不存在
注意:我不喜欢data.php文件中的其他连接,因为我有超过100个连接
答案 0 :(得分:1)
我相信CI会认为您已经有可用的连接,并且它不使用您指定的参数。
尝试在连接新配置之前键入$this->db->close();
来关闭默认连接。
否则,您应该通过将第二个参数设置为TRUE,使用manual中指定的新配置返回数据库对象的新实例。您应该能够使用返回的对象:
$specific_db = $this->load->database($specific, TRUE);
答案 1 :(得分:1)
在回应你对Repox的评论时,你肯定一定是错误的。他的最后一个解决方案必须有效,我会不断地使用它。你能展示一个对象的“new db_user()”,你可以使用通用数据库吗?
注意:在此处留下结束标记,这是一个模型:
对于仅包含PHP代码的文件,结束标记(“?&gt;”)永远不会 允许的。它不是PHP所要求的,省略它会阻止它 意外地将尾随的白色空间注入响应中。
试试这个例子,它应该从countries表中返回30个值。
<?php
class user_model extends CI_Model {
public function test()
{
$specific['hostname'] = "localhost";
$specific['username'] = "root";
$specific['password'] = "";
$specific['database'] = "ci_forsyria";
$specific['dbdriver'] = "mysql";
$specific['dbprefix'] = "";
$specific['pconnect'] = FALSE;
$specific['db_debug'] = TRUE;
$specific['cache_on'] = FALSE;
$specific['cachedir'] = "";
$specific['char_set'] = "utf8";
$specific['dbcollat'] = "utf8_general_ci";
$specific_db = $this->load->database($specific, TRUE);
$example_query = $specific_db->query('SELECT * FROM countries LIMIT 0,30')->result();
return var_dump($example_query);
}
}