PHPからMySQL接続する、いろいろな方法を試す第2弾。
今回は、PEAR::MDB2を利用します。

※第1弾はPHPでMySQLに接続です。

最初は、PEAR::DBを利用しようと思っていたのですが、
情報収集を始めてすぐに、
まだ、PEAR::DBをお使いの方へという記事を見つけてしまって、
もうあまり使われていないことを知りました。

PEAR::MDB2は、その進化版のようなので、
最初から、こちらをテストする方が良さそうです。
そして、こちらがPEAR::MDB2のテスト結果です。

PEAR::MDB2とは?

MySQLやPostgreSQL、SQLiteなどデータベースには、
いろいろな種類があり、プログラムはその影響をもろに受けます。

よって、
MySQL→PostgreSQL
などのような変更に非常にコストがかかります。

しかし、PEAR::MDB2などのデータベース抽象化レイヤを利用すれば、
各データベースのドライバをインストールするだけで、
プログラム変更の手間なく(少なく)、データベース変更をすることができます。

PEAR::MDB2の前には、PEAR::DBというものがありました。
しかし、「PEAR::DB」には、こう書かれています。

This package has been superseded, but is still maintained for bugs and security fixes. Use MDB2 instead.

翻訳すると、

”このパッケージは、新しいものに置き換わっています。なぜなら機能的に古くなったから。バグやセキュリティの修正は、まだ続けられますが、代わりにMDB2を使ってくれ。”

というような感じです。

PEAR::MDB2は、PEAR::DBのアップデート版と考えて良いでしょう。

PEAR::MDB2のサンプルプログラミング



<?php

ini_set('include_path', '********************');
require_once("MDB2.php");
require_once("db_info.php");

$dsn = array("phptype"=>"mysql","username"=>"$USER","password"=>"$PASS","hostspec"=>"$SERV","database"=>"$DBNM");

$mdb2 = MDB2::factory($dsn);
if(PEAR::isError($mdb2)){
    die($mdb2->getMessage());
}

$mdb2->setFetchMode(MDB2_FETCHMODE_ASSOC);
$all = $mdb2->queryAll('SELECT * FROM *******');

print('<table border="1" width="48%">
<tr>
<th bgcolor="#DCDCDC">スポーツ</th>
<th bgcolor="#DCDCDC">人数</th>
<th bgcolor="#DCDCDC">日付</th>
</tr>');

foreach($all as $key => $data){
print('<tr>');
print('<td>'.$data[sports].'</td>');
print('<td>'.$data[ninzu].'</td>');
print('<td>'.$data[hiduke].'</td>');
print('</tr>');
}

print('</table>');
?>

MDB2のまとめ

今回は、スーパーロメオのノートブックさんからも、
参考にさせてもらいました。ありがとうございます。

PEARをエックスサーバで使う方法をマスターしてから、
PHPの学習スピードが、ようやくと上がってきたような気がしています。

つまりは、ようやくと、
自分の力で何かを調べるための見当が付けられるようになった。
というところでしょうか。

【関連している記事】