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
# 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”;
↓
//mysqliを→mysqlに変更
$db = “mysql://user:password@localhost/database_name?charset=utf8”;
以上で終了です。