CentOSにPear:MDB2インストール ITかあさん

ITかあさん

CentOSにPear:MDB2インストール

DBの種類に関係なく、同じソースコードでPHPからクエリが投げられる便利なライブラリ、Pear:DBがありましたが、インストールしようとしたところ、MDB2を利用するように怒られてしまいました。
まだPearが入っていなければ先にインストール

Pearをインストール

#yum -y install php-pear

MDB2をインストール

MDB2本体と、ドライバの2つが必要です。ドライバの入れ忘れに注意してください。

# yum install php-pear-MDB2.noarch
# yum install php-pear-MDB2-Driver-mysql.noarch

Apache再起動

ドライバまで入れ終わったらApache再起動が必要です。

/etc/rc.d/init.d/httpd restart

Pear:MDB2動作テスト

文字コードはutf-8の場合はutf8となります。間違えないように。

require_once 'MDB2.php';//ライブラリのロード
$db=MDB2::connect('mysqli://user:password@localhost/mydb?charset=utf8');  if(PEAR::isError($db)) die("<p>{$db->getMessage()}</p>");//エラー処理

MDB2 Error: not found

MDB2 Error: not foundと表示された場合はドライバが入っていない可能性があります。
MysqlのドライバならMysqlのドライバを、PostsreSQLならPostsreSQLのドライバを、各利用するDBにあわせたドライバが必要になりますので注意です。
(確かPear:DBの時は、Pear:DB単体で接続できたはず。この点だけ注意が必要です。)

ドライバがあるのにそれでも接続できない?

実際に私も遭遇したのですが、ドライバも揃っている、DNSも間違っていないのにうまくつながらないことがあります。
その時は以下のようにするとつながります。

$db = “mysqli://user:password@localhost/database_name?charset=utf8″;

//mysqliを→mysqlに変更
$db = “mysql://user:password@localhost/database_name?charset=utf8”;

以上で終了です。

初夏のJavaScript祭 in サーキュレーションビル ForPro