2012-02-26 60 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; 
相关问题