我正在尝试将Microsoft Access数据库用于我正在考虑在CodeIgniter或CakePHP中进行的演示项目。忽略使用Microsoft Access的可能愚蠢行为,我无法确切地弄清楚连接字符串如何与框架的数据库设置相对应。在PHP中,我可以使用此代码连接到Access数据库:

$db_connection = odbc_connect(
  "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\\path\\to\\db.mdb", 
  "ADODB.Connection", "", "SQL_CUR_USE_ODBC"
);

这些字符串如何与Code Igniter数据库设置相对应?这看起来不太合适:

$db['access']['hostname'] = "{Microsoft Access Driver (*.mdb)}";
$db['access']['username'] = "ADODB.Connection";
$db['access']['password'] = "";
$db['access']['database'] = "\\path\\to\\db.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";
有帮助吗?

解决方案

尝试设置DSN并更改为以下内容:

$db['access']['hostname'] = "<dsn name>";
$db['access']['username'] = "";
$db['access']['password'] = "";
$db['access']['database'] = "<dsn name>";

CodeIgniter文档中还有一节用于解决连接字符串:

http://codeigniter.com/user_guide/database/connecting.html

其他提示

是否可以使用SQL Express(免费!)引擎代替导入/导出MS Access数据库?你可以稍后再感谢我。 : - )

另一个选择是使用ADOdb库而不是CI的本机数据库库,虽然您将失去CI的Active Record支持,并且必须重写CI中的某些库才能使用它,但如果您仍然需要它,那么它是值得的使用CI与您的应用程序不支持的数据库。当Postgres实施中存在错误时,我必须尽早完成。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top