我正在尝试使用MDBTools驱动程序从 Access 数据库中读取以odbc_connect
在 Ubuntu 11.10 上执行。使用 DSN 设置时它工作正常/etc/odbc.ini
。
以下是 的内容/etc/odbc.ini
:
[logindb]
Description = Microsoft Access Try DB
Driver = MDBToolsODBC
Database = /home/folder1/TestDb.mdb
Servername = localhost
odbc.ini
引用中的 Driver 属性MDBToolsODBC
,所以,这是我的 odbc 设置/etc/odbcinst.ini
:
[MDBToolsODBC]
Description = MDB Tools ODBC
Driver = /usr/lib/libmdbodbc.so.0
Setup =
FileUsage =
CPTimeout =
CPReuse =
我的问题是,在使用时$conn = odbc_connect('logindb','','');
,我必须使用数据库位置的硬编码值。理想情况下,我想指定odbc_connect
使用无 DSN 连接的第一个参数,以便我的数据库文件可以是一个变量(将从不同的数据库读取)。就像是:
if ($cond1) {
$db = "/home/folder1/TestDb.mdb";
} else {
$db = "/home/folder1/TestDb2.mdb";
}
$conn = odbc_connect("odbc:Driver={MDBToolsODBC};Dbq=$db",'','');
我也试过不带 odbc: 前缀,但没有用。谁能告诉我为什么指定 DSN 有效,但是当尝试使用看起来相同的属性动态指定它时,它不起作用?我认为这与无 DSN 连接中第一个参数的参数和内容有关。与往常一样,非常感谢任何帮助。