安裝
#安裝 PHP ODBC Driver
yum -y install php-odbc
#安裝 mdbtools
yum -y install mdbtools
#安裝 mdbtools-devel ,安裝這個才有 libmdbodbc.so
yum -y install mdbtools-devel
CentOS 8 須改由使用 rpm 方式安裝
#安裝 mdbtools-lib
wget https://pkgs.dyn.su/el8/base/x86_64/mdbtools-libs-0.7.1-13.el8.x86_64.rpm
rpm -ivh mdbtools-libs-0.7.1-13.el8.x86_64.rpm
#安裝 mdbtools
wget https://pkgs.dyn.su/el8/base/x86_64/mdbtools-0.7.1-13.el8.x86_64.rpm
rpm -ivh mdbtools-0.7.1-13.el8.x86_64.rpm
#安裝 mdbtools-devel
wget https://pkgs.dyn.su/el8/base/x86_64/mdbtools-devel-0.7.1-13.el8.x86_64.rpm
rpm -ivh mdbtools-devel-0.7.1-13.el8.x86_64.rpm
安裝過程中若有出現警告訊息缺少相依,根據提示將相依補上。
查看 /etc/odbcinst.ini 內容,看一下設定的格式,可知要有 ODBC for MDB 的話, lib、lib64 目錄,應該會有 libmdbodbc.so 之類的檔案。找尋 ls -al /usr/lib/libmdb* 或 ls -al /usr/lib64/libmdb* 可發現 usr/lib64/ 底下有 libmdbodbc.so 的檔案 link。
在 /etc/odbcinst.ini 裡面,多加一組 MDBTools MDB ODBC Driver(名稱可自訂) 設定。編輯 vi /etc/odbcinst.ini 檔案,加入下面幾段:
[MyMDBDriver]
Description = MDBTools MDB ODBC Driver
Driver = /usr/lib/libmdbodbc.so
Setup = /usr/lib/libmdbodbc.so
Driver64 = /usr/lib64/libmdbodbc.so
Setup64 = /usr/lib64/libmdbodbc.so
FileUsage = 1
UsageCount = 1
使用時若出現找不到 libodbccr.so 問題。需要將新版的 lib 名稱指向相同名稱。
ln -s /usr/lib64/libodbccr.so.2.0.0 /usr/lib64/libodbccr.so
php 程式範例
$mdbFile = "mdbfile.mdb";
//mdb 檔案
$driver = 'MyMDBDriver'; //在 /etc/odbcinst.ini 裡的設定名稱
$dataSource = "odbc:Driver=$driver;DBQ=$mdbFile;";
$mdb = new PDO($dataSource);
$sql = "SELECT * FROM Table";
$stmt = $mdb->query($sql);
$i=0;
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
// print_r($row);
$result[$i]['ID'] = $row['ID'];
$result[$i]['Name'] = $row['Name'];
$result[$i]['Gender'] = $row['Gender'];
$i++;
}
for($i=0;$i<count($result);$i++){
echo $result[$i]['ID'].' => '.$result[$i]['Name'].' => '.$result[$i]['Gender'].'<br>';
}