2012-04-15 192 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