MDBToolsドライバーを使用してAccessデータベースから読み取り、Ubuntu11.10でを実行しようとしていますodbc_connect
。で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なしの接続の最初のパラメーターのパラメーターと内容に関係していると思います。いつものように、どんな助けでも大歓迎です。