3 Accessデータベースの配置とODBCの設定

前回までに、IISとPHPという重要な基本的動作環境ができましたので、ここからAccessデータベースの環境設定に入ります。PHPを使ってAccessを操作するためには、基本的に2つの作業が必要となります。当然のことながらテーブルにデータの保存されたAccessのファイル(.mdbファイル)を用意することと、PHPからはODBC(Open DataBase Connectivity)経由でアクセスすることになりますので、そのmdbファイルへのODBCデータソースを用意する必要があります。

※PHPからAccessデータベースにアクセスするには、ODBCだけでなくADOを使った方法も可能です。ただし今回はコーディング等が簡便なODBCを使った方法のみ紹介します。
※Accessの「ページ」オブジェクトを使ったWebページを作るのではありませんし、またフォームやレポートもPHPから操作するわけではありませんので、必要ありません。テーブルだけが保存されたmdbファイルがあれば十分です。



まず、Accessデータベースファイルの配置です。データベースへはODBCを経由してアクセスしますので、基本的にはディスク上のどこにあってもかまいません。そのパスはODBCデータソース上で設定します。
ただし、その場所にはひとつだけ条件があります。すべてのユーザー(厳密にはIISユーザー)がアクセス権限を持ったフォルダに配置する必要があります。IISからODBC経由でAccessデータベースにアクセスする場合、IISは「IUSER_<そのコンピューター名>」というユーザー名でアクセスすることになります。たとえばWindowsが"Administrator"でログインして起動されていたとしても、IISは「USER_*****」といったユーザーとしてAccessデータベースを操作することになります。よって、「USER_*****」がそのフォルダにアクセス権(具体的には書き込み権限や.ldbのファイルを生成できる権限)を持っている必要があるわけです。
  • すべてのユーザーがアクセス権限を持ったフォルダとしては、Windows XPの場合には「共有ドキュメント」(C:\Documents and Settings\All Users\Documents)、あるいはエクスプローラなどで「共有フォルダ」に設定されたフォルダなどがあります。
  • もし既存のフォルダにフルアクセス権限を持たせたい場合には、それを"共有フォルダ"に設定するのが手っ取り早い方法ですが、セキュリティ上の問題もあるかもしれませんので、注意してください。
  • アクセス権限の設定方法はOSによって異なります。
  • もしAccessデータベースのテーブル内容を読む込むだけであれば(更新処理などがないとき)、特にフォルダのアクセス権限は気にする必要はありません。
  • ODBC経由のアクセス権限ですので、IISの仮想ディレクトリの権限設定とは異なります。ただしODBC経由のアクセス自体はIISの機能に頼るものですので、詳細についてはIISの専門書などを参考にしてください。
  • 参考までに、アクセス権限がない状態でレコードの更新処理などを実行しようとすると、『[ODBC Microsoft Access Driver] 更新可能なクエリであることが必要です。』というエラーとなります。
今回は、サンプルデータとしてAccessに付属の「ノースウィンドウ サンプル データベース」(Northwind.mdb)を使うことにします。上記のような理由から、そのファイルをWindows XPの「共有ドキュメント」フォルダに置くことにします。Access2003の場合、このファイルは「C:\Program Files\Microsoft Office\OFFICE11\SAMPLES\Northwind.mdb」ですので、それをコピーして「C:\Documents and Settings\All Users\Documents」フォルダの下に配置します。



次に、ODBCのデータソース(DSN:Data Source Name)の設定を行います。所定のAccessデータベースファイルにアクセスするための設定をODBCのDSNとしてサーバー上に生成しておくことによって、PHPからは、ODBCドライバならびにそのDSNを経由してデータベースを操作することになります。
なお、ODBCを使うには、Accessデータベースに対応したODBCドライバが必要です。Webサーバーとして使うパソコンにAccessがセットアップされていれば既定でインストールされているはずですが、もしなければMicrosoft社のサイトよりドライバを入手してセットアップしておきます(「MDAC」というデータアクセス関連のファイル名称で見つけられます)。

DSNの設定手順は次の通りです。
  1. Windowsの[スタート]メニューより、[すべてのプログラム]-[管理ツール]-[データ ソース(ODBC)]を選択します。

  2. 「ODBC データ ソース アドミニストレータ」が起動したら、[システムDSN]タブを選択します。


  3. [追加]ボタンをクリックして、ドライバの一覧から「Microsoft Access Driver (*.mdb)」を選択、[完了]ボタンをクリックします。


  4. 続いての「ODBC Microsoft Access セットアップ」画面で、まず適当な「データソース名」を入力します。PHPからデータベースにアクセスする際にはこの名前をスクリプト上で指定することになります(AccessのファイルそのもののパスをPHPで使うわけではありません)。ここでは、「AccessPHP」としておきます。


  5. 同じ画面で、データベースの[選択]ボタンをクリック、すでに所定の場所に配置されたAccessデータベースファイル「C:\Documents and Settings\All Users\Documents\Northwind.mdb」ファイルを選択して[OK]ボタンをクリックします。


  6. 「ODBC Microsoft Access セットアップ」画面に戻ったら、そのまま[OK]ボタンをクリックします。

  7. 「ODBC データ ソース アドミニストレータ」画面に戻ったら、先ほど指定したDSNが一覧に追加されていることを確認して、[OK]ボタンをクリックして終了します。
| Index | Prev | Next |

 

Copyright © T'sWare All rights reserved