0

我在 Linux 系统上通过 mdbtools 连接到 Access DB,并在通过 Active Record 运行任何查询时返回空结果。日志中没有错误或任何内容。有任何想法吗 ?它可以顺利连接到数据库,并且我可以毫无问题地访问表或使用默认的 PHP 方法(例如 odbc_exec(...))运行查询。

数据库连接如下所示:

  $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);
4

1 回答 1

0

我没有 microsoft access 数据库来测试以下配置,但我认为这应该可以给你一个想法来体验不同的配置。您可以在配置中指定数据源名称,我从codeigniter 论坛收集了设置并与您的合并。

$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;
于 2012-02-27T03:03:44.433 回答