2012-02-26 183 views
0

我通過Linux系統上的mdbtools連接到Access數據庫,並通過活動記錄運行任何查詢時返回空結果。沒有錯誤或任何內容顯示在日誌中。有任何想法嗎 ?它連接數據庫時沒有困難,使用默認的PHP方法(例如odbc_exec(...))訪問表或運行查詢也沒有問題。CodeIgniter - 使用Access ODBC返回空結果的活動記錄

數據庫連接看起來是這樣的:

$db['access']['hostname'] = 'MyDB'; 
    $db['access']['username'] = ''; 
    $db['access']['password'] = ''; 
    $db['access']['database'] = 'MyDB'; 
    $db['access']['dbdriver'] = 'odbc'; 
    $db['access']['dbprefix'] = ''; 
    $db['access']['pconnect'] = TRUE; 
    $db['access']['db_debug'] = TRUE; 
    $db['access']['cache_on'] = FALSE; 
    $db['access']['cachedir'] = ''; 
    $db['access']['char_set'] = 'utf8'; 
    $db['access']['dbcollat'] = 'utf8_general_ci'; 
    $db['access']['swap_pre'] = ''; 
    $db['access']['autoinit'] = TRUE; 
    $db['access']['stricton'] = FALSE; 

的ODBC.INI樣子:

[MyDB] 
Description = My Database 
Driver = /usr/lib64/libmdbodbc.so 
Database = /var/database/MyDB.mdb 

與連接:

$this->access = $this->load->database('access', TRUE); 

回答

0

我沒有的Microsoft Access數據庫使用以下配置進行測試,但我認爲這應該能夠給你一個想法,體驗不同nt配置。您可以在配置中指定data source name,並且我從codeigniter forum收集設置並與您的合併。

$db['access']['hostname'] = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=/var/database/MyDB.mdb"; 
$db['access']['username'] = "ADODB.Connection"; 
$db['access']['password'] = ""; 
$db['access']['database'] = "/var/database/MyDB.mdb"; 
$db['access']['dbdriver'] = "odbc"; 
$db['access']['dbprefix'] = ""; 
$db['access']['pconnect'] = TRUE; 
$db['access']['db_debug'] = TRUE; 
$db['access']['cache_on'] = FALSE; 
$db['access']['cachedir'] = ""; 
$db['access']['char_set'] = "utf8"; 
$db['access']['dbcollat'] = "utf8_general_ci"; 
$db['access']['swap_pre'] = ""; 
$db['access']['autoinit'] = TRUE; 
$db['access']['stricton'] = FALSE;