安裝

#安裝 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>';
    }
最後修改日期: 2020 年 9 月 24 日