MDBToolsドライバを使用してAccessデータベースから読み取って、Ubuntu 11.10でodbc_connect
を実行しようとしています。 /etc/odbc.ini
でDSN設定を使用するとうまくいきます。 odbc.ini
参照MDBToolsODBC
におけるドライバーの属性MDBToolsドライバを使用したPHP ODBCとのDSNレス接続
[logindb]
Description = Microsoft Access Try DB
Driver = MDBToolsODBC
Database = /home/folder1/TestDb.mdb
Servername = localhost
、そう、ここに私のODBCセットアップは/etc/odbcinst.ini
である:
は/etc/odbc.ini
の内容です
[MDBToolsODBC]
Description = MDB Tools ODBC
Driver = /usr/lib/libmdbodbc.so.0
Setup =
FileUsage =
CPTimeout =
CPReuse =
$conn = odbc_connect('logindb','','');
を使用するときに私の問題は、あります、私はデータベースの場所のハードコードされた値を使用する必要があります。理想的には、最初のパラメータodbc_connect
をDSNレス接続を使用して指定して、データベースファイルを変数にすることができます(別のDBから読み取ることになります)。何かのように:接頭辞を、それがうまくいきませんでした:
if ($cond1) {
$db = "/home/folder1/TestDb.mdb";
} else {
$db = "/home/folder1/TestDb2.mdb";
}
$conn = odbc_connect("odbc:Driver={MDBToolsODBC};Dbq=$db",'','');
私はまた、ODBCせずに、それを試してみました。 DSNの指定がなぜ機能するのか誰にでも教えてもらえますが、同じ属性のように見えるものを使用してそれを指定しようとすると動作しません。私はそれがDSNのない接続の最初のパラメータのパラメータと内容と関係していると思っています。いつものように、どんな助けも大歓迎です。
@Rocket: '/etc/odbc.iniにおける変数名に続きを'、それは' Database = $ db'であってはなりませんか? – eggyal
@eggyal:それは助けにもならなかった。 「SQLエラー:[unixODBC] [ドライバマネージャ]データソース名が見つかりません。デフォルトのドライバが指定されていません」と表示されます。 –
@Rocket: 'Driver =/usr/lib/libmdbodbc.so.0'を明示的に指定した場合は? – eggyal