2012-04-15 196 views
0

我需要连接许多数据库 在database.php中 主连接,并有与munal连接数据库笨

没有问题,但另一个连接必须型号

我用这个类

<?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(); 
     } 
} 
?> 

但是连接不工作 它仍然与主数据库

012连接

错误编号:1146 表“countries.ci_users”不存在

注:我不惯于但在database.php中文件中的另一个连接,因为我有超过100个连接

回答

1

对你对Repox的评论作出回应,你肯定会错误地使用它。他最后的解决方案必须工作,我不断使用它。你可以显示什么“新的db_user()”是一个对象,你可以使用通用数据库?

注:离开这里结束标记,这是一个模型:

对于只包含PHP代码的文件,结束标志( “?>”)是绝不允许 。它不是PHP所要求的,并且忽略它可以防止 将意外的空白空间注入到响应中。

试试这个例子,它应该从国家表中返回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); 
    } 
} 
+0

是的它现在的工作 但我想要查询使用数据映射器 – 2012-04-15 18:51:46

1

我相信CI会认为你已经有一个连接可用,并且它不使用你指定的参数。

尝试在连接新配置之前,通过键入$this->db->close();来关闭默认连接。

否则,您应该使用manual中指定的新配置返回数据库对象的新实例,方法是将第二个参数设置为TRUE。你应该能够使用返回的对象:

$specific_db = $this->load->database($specific, TRUE); 
+0

谢谢,但它不工作太 – 2012-04-15 18:15:31

+0

'不工作'是不容易的,以帮助你。其中一个应该给你一些其他的回应。 – Repox 2012-04-15 18:29:19

+0

现在它与EvdTempel代码 但我想使用数据映射器 – 2012-04-15 18:56:34