Wiki内検索
カウンタ
メニュー
最近更新したページ
最新コメント
トップページ by awesome things!
トップページ by check it out
Generics(Java) by stunning seo guys
String(Java) by awesome things!
トップページ by check it out
PHPのページ by stunning seo guys
Tomcatのページ by stunning seo guys
トップページ by check it out
トップページ by awesome things!
タグ

PEAR::MDB2のページ


PEAR::MDB2

PEARには、RDBを扱うためのPEAR::DBというパッケージがあるのですが、2007/3時点そのページをみると、「Bug FixとSecurity Fixはするけど、MDB2を使うように」と書かれています。

ですので、PEAR::MDB2をインストールしてみましょう。PEAR::MDB2のホームページをみると、PEAR::MDB2はPEAR::DBとMetabase php database abstraction layersをマージしたものだと書かれています。LicenseはBSDライセンスになっています。2007/3時点でv2.3.0がリリースされています(注;3/13に2.4.0がリリースされたようです)。
ダウンロードページのdependenciesをみるとPHP4.3.2以降、PEARパッケージ1.4.0b1以降と書かれています。

RDBを扱うためのパッケージですので、MySQLを利用します。

インストールした環境は以下です。

ソフトウェアバージョン
OSWindows XP(SP2)
php5.2.1
MySQL5.0.19(3308ポートをlisten)
PEAR1.5.1


PEAR::MDB2のインストール


PEAR::MDB2のダウンロードページより、MDB2-2.3.0.tarをダウンロードします。
これを解凍し、MDB2.phpとMDB2フォルダーをPEARのインストールディレクトリ(php.iniのinclude pathesに設定したディレクトリ)にコピーします。
PEAR::MDB2本体のインストールはこれで完了です。


PEAR::MDB2_Driver_mysqlのインストール


PEAR::MDB2は本体(抽象化レイヤー)なので、利用するRDBにあわせたパッケージを追加インストールする必要があります。
今回はMySQLを使いますので、MDB2_Driver_mysqlをインストールします。この「mysql」は、php.iniで設定した拡張dll(php_mysql.dll)と一致している必要があります。

MDB2_Driver_mysqlのダウンロードページより、MDB2_Driver_mysql-1.4.0.tarを落としてきます。
これを解凍すると、MDB2フォルダーがでてきます。このフォルダー配下のものをすべて、先ほどインストールしたMDB2フォルダーに上書きコピーします。
これでMySQLが使える状態になります。


テスト


PEAR::MDB2を解凍すると、docフォルダー下にexampleというフォルダーがあります。
この中にexample_php5.phpというサンプルがありますので、これを動かしてみましょう。
dsnがPostgreSQLを使うような設定になっていますので、自分の環境にあわせて修正します。

私の環境では以下のように直しました。

$dsn = array(
# 'phptype' => 'pgsql',
# 'username' => 'postgres',
'phptype' => 'mysql',
'username' => 'root',
'password' => 'root',
'hostspec' => 'localhost:3308',
'database' => 'test',
);

これをphpの動く場所において、以下のような結果がでればOKです。

last insert id: int(7) last insert id: int(8) output row:
string(0) "" output row:
int(1) output row:
int(1024) output row:
int(-6) output row:
string(25) "MDB2 Error: not supported" output row:
string(123) "mapNativeDatatype: [Error message: method not implemented] [Last executed query: SELECT *
FROM sometable] [Native code: 0] " output row:
array(8) { [0]=> array(6) { ["file"]=> string(32) "C:\php-5.2.1\PEAR-1.5.1\MDB2.php" ["line"]=> int(961)
・・・・
executed (4) { [0]=> string(23) "SELECT * FROM sometable" [1]=> bool(true) [2]=> bool(true) [3]=> string
(21) "MDB2_BufferedIterator" } } } output row:
NULL

このサンプルには、基本的なMDB2の使い方が書かれているので役に立つと思います。
2007年03月16日(金) 14:11:05 Modified by wanderingse




スマートフォン版で見る