ホームページ > バックエンド開発 > PHPチュートリアル > PHPはmdbファイルにアクセスします

PHPはmdbファイルにアクセスします

WBOY
リリース: 2016-06-23 13:14:06
オリジナル
2857 人が閲覧しました

PHP は、ODBC を通じて Access データベース ファイルにアクセスできます。

Access MDB の環境 ODBC 設定:

1. Windows

Windows では、php.ini で php_pdo_odbc.dll 拡張機能を有効にします

extension=php_pdo_odbc.dll
ログイン後にコピー

2. Linux

Linux では、ODBC と mdbtools をインストールする必要があります

[ mdbtools の説明]

mdbtools は、Linux 上で Access MDB の無料ソリューションを動作させるための現在のソリューションです

ただし、私がテストしたバージョンでは、単純な SQL 構文のみを実行でき、一部の SQL 構文は Windows では正常です

ただし、それは実行できませんLinux では mdbtools を通じて実行できます (PHP PDO 実行後は false になります。コマンドを直接使用して ODBC 経由で操作すると、「SQL を解析できませんでした」というエラーが表示されます)。

php-odbc

$ yum install php-odbc
ログイン後にコピー
をインストールします

MDBTools をインストールします

$ yum install mdbtools
ログイン後にコピー

mdbtools-devel をインストールします。これをインストールした後でのみ、libmdbodbc.so

$ yum install mdbtools-devel
ログイン後にコピー
を使用できます

/etc/odbcinst.ini の内容を表示し、設定された形式を確認します

$ less /etc/odbcinst.ini# Example driver definitions# Driver from the postgresql-odbc package# Setup from the unixODBC package[PostgreSQL]Description     = ODBC for PostgreSQLDriver          = /usr/lib/psqlodbcw.soSetup           = /usr/lib/libodbcpsqlS.soDriver64        = /usr/lib64/psqlodbcw.soSetup64         = /usr/lib64/libodbcpsqlS.soFileUsage       = 1# Driver from the mysql-connector-odbc package# Setup from the unixODBC package[MySQL]Description     = ODBC for MySQLDriver          = /usr/lib/libmyodbc5.soSetup           = /usr/lib/libodbcmyS.soDriver64        = /usr/lib64/libmyodbc5.soSetup64         = /usr/lib64/libodbcmyS.soFileUsage       = 1
ログイン後にコピー

MDB 用の ODBC の場合、libmdbodbc.so などのファイルが lib ディレクトリと lib64 ディレクトリにあるはずです

$ ls -al /usr/lib/libmdb*ls: 無法存取 /usr/lib/libmdb*: 沒有此一檔案或目錄$ ls -al /usr/lib64/libmdb*-rwxr-xr-x 1 root root 38240  2月 20  2015 /usr/lib64/libmdbodbc.so-rwxr-xr-x 1 root root 42536  2月 20  2015 /usr/lib64/libmdbodbcW.solrwxrwxrwx 1 root root    15  2月  5 17:14 /usr/lib64/libmdb.so -> libmdb.so.2.0.1lrwxrwxrwx 1 root root    15  2月  5 16:35 /usr/lib64/libmdb.so.2 -> libmdb.so.2.0.1-rwxr-xr-x 1 root root 90104  2月 20  2015 /usr/lib64/libmdb.so.2.0.1lrwxrwxrwx 1 root root    18  2月  5 17:14 /usr/lib64/libmdbsql.so -> libmdbsql.so.2.0.0lrwxrwxrwx 1 root root    18  2月  5 16:35 /usr/lib64/libmdbsql.so.2 -> libmdbsql.so.2.0.0-rwxr-xr-x 1 root root 41144  2月 20  2015 /usr/lib64/libmdbsql.so.2.0.0
ログイン後にコピー

libmdbodbc.so のファイル リンクは usr/lib64/

にあります。 odbcinst.ini で、追加の MDBTools MDB ODBC Driver 設定セットを追加します (名前はカスタマイズ可能)

$ vi /etc/odbcinst.ini[MyMDBDriver]Description     = MDBTools MDB ODBC DriverDriver          = /usr/lib/libmdbodbc.soSetup           = /usr/lib/libmdbodbc.soDriver64        = /usr/lib64/libmdbodbc.soSetup64         = /usr/lib64/libmdbodbc.soFileUsage       = 1UsageCount  = 1
ログイン後にコピー

PHP プログラムの例:

$uname = explode(" ", php_uname());$os = $uname[0];switch ($os) {    case 'Windows':        $mdb_file = 'D:\test.mdb';        $driver = '{Microsoft Access Driver (*.mdb)}';        break;    case 'Linux':        $mdb_file = '/home/test.mdb';        $driver = 'MyMDBDriver'; //在 /etc/odbcinst.ini 裡的設定名稱        break;    default:        exit("Don't know about this OS");}$dataSourceName = "odbc:Driver=$driver;DBQ=$mdb_file;";$connection = new PDO($dataSourceName);$sql = "SELECT * FROM test";$stmt = $connection->query($sql);$data = $stmt->fetchAll(\PDO::FETCH_ASSOC);
ログイン後にコピー

参考:

PHP Web サイトから mdb データベースにアクセスする

方法PHP5 PDO と ODBC を使用して Linux で MS Access MDB ファイルを処理するには · GitHub

PHP: PDO_ODBC DSN - Manual

Others:

1. /etc/odbc.ini

$ vi /etc/odbc.ini[MDBtest]Description = The Source of My test mdbDriver      = MyMDBDriverServerName  = localhostDatabase    = /home/test.mdb
ログイン後にコピー

に次の設定を追加すると、次のことができます。次のように SQL コマンド インターフェイスに入ります。入力後、SQL コマンドを直接使用できます。 /home/test.mdb データベースを操作します。

$ isql -v MDBtest+---------------------------------------+| Connected!                            ||                                       || sql-statement                         || help [tablename]                      || quit                                  ||                                       |+---------------------------------------+SQL>
ログイン後にコピー

2. mdbtools をコンパイルしてインストールします。

GitHub - brianb/mdbtools: MDB Tools - Read Access データベースon *nix

Centos 7 に mdbtools をインストールする – Dale Scott

tar zxvf mdbtools-0.6pre1.tar.gzcd mdbtools-0.6pre1/autoreconf -i -f./configure --with-unixodbc=/usr/localmakemake install
ログイン後にコピー

3. mdb 時間フィールドにアクセスします:

SQL 構文の条件値には、左側に #

$sql = "SELECT * FROM test WHERE aa >#{2016-03-15}#";
ログイン後にコピー
を追加する必要があります。 参考: mdf と mdb の SQL 構文の違いは何ですか? - Delphi K.トップ ディスカッション フォーラム

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート