2012-08-01 36 views
0

我有我的mysql數據庫的本地和遠程連接。本地連接工作得很好。但遠程連接在建立連接時不會返回任何內容。我通常會得到如下:Codeigniter遠程連接不返回查詢

致命錯誤:調用一個成員函數結果()一個非對象

我使用的遠程連接的配置如下:



    $db['mydb']['hostname'] = "ip_address_of_database"; 
    $db['mydb']['username'] = "username"; 
    $db['mydb']['password'] = "password"; 
    $db['mydb']['database'] = "database"; 
    $db['mydb']['dbdriver'] = "mysql"; 
    $db['mydb']['dbprefix'] = ""; 
    $db['mydb']['pconnect'] = FALSE; 
    $db['mydb']['db_debug'] = FALSE; 
    $db['mydb']['cache_on'] = FALSE; 
    $db['mydb']['cachedir'] = ""; 
    $db['mydb']['char_set'] = "utf8"; 
    $db['mydb']['dbcollat'] = "utf8_general_ci"; 

在我的功能訪問數據庫我檢查是否存在與遠程服務器的連接,然後嘗試檢索數據。



    $mydb = $this->load->database('mydb', TRUE); 
    if (!isset($mydb->conn_id) && !is_resource($mydb->conn_id)) { 
     $error = 'database is not connected'; 
     return $error; 
    }else{ 
     $query = $mydb->query("SELECT * FROM database LIMIT 1;"); 
     return $query->result();    
     } 

這在本地主機數據庫中正常工作,但不在遠程數據庫中。我總是得到錯誤 致命錯誤:調用一個非對象的成員函數result()

你能幫忙嗎?我究竟做錯了什麼?我堅持這一點。

回答

0

最後,我找到了解決方案後,聯繫我的虛擬主機提供商。這個問題與遠程數據庫訪問及其服務器有關。我添加的IP地址例外和域名沒有完成這項工作。我必須添加我的主機使用的內部域名,以便允許遠程數據庫訪問。我花了2-3個小時與他們聊天,以找到解決方案。 無論如何現在解決了。我發佈了這個FYI。

+1

然後不要忘記接受你自己的答案。 – j0k 2012-09-03 09:01:18