PEARライブラリのMDB2でMYSQLに接続
インストール
MDB2を使用するには、MDB2本体と利用するデータベース用のドライバが必要です。(xamppの場合、MDB2本体は入っていますが、ドライバは入ってないかもしれません。)
以下のようにコマンドを入力します。
本体
pear install MDB2
ドライバ(MYSQL)
pear install MDB2_Driver_mysql
接続
<?php // MDB2 ライブラリの読み込み require_once("MDB2.php"); // エラー発生時の処理 PEAR::setErrorHandling( PEAR_ERROR_CALLBACK, 'handleError' ); function handleError( $error ) { die('エラー発生しました。'); } // データベース接続 $dsn = array( "phptype" => "mysql", "username" => "root", "password" => "1234", "hostspec" => "localhost", "database" => "test", ); $mdb2 =& MDB2::connect( $dsn ); // 文字コード指定。 $mdb2->setCharset( "utf8" ); //データベース切断 $mdb2->disconnect(); ?>
クエリの実行
クエリのメソッドはいくつか用意されてますが、代表的なのは以下のメソッドです。
query()
SELECTなどSQLを発行して結果を返す場合に使用
<?php // クエリ実行 $sql = "SELECT * FROM clients"; $res =& $mdb2->query($sql); // 結果がエラーでないかどうかを常にチェック if (PEAR::isError($res)) { die($res->getMessage()); } ?>
exec()
INSERT,UPDATE,DELETEなど結果を返す必要のないSQLの発行に使用
<?php //SQL発行 $sql = "INSERT INTO clients (name, address) VALUES ($name, $address)"; $affected =& $mdb2->exec($sql); // 結果がエラーでないかどうかを常にチェック if (PEAR::isError($affected)) { die($affected->getMessage()); } ?>
プリペアドステートメント
INSERTの場合
<?php $sql = "INSERT INTO clients (name , address, phone) VALUES (?, ?) "; $type = array('text', 'text', 'text'); //変数に代入する値のタイプ $str = $mdb2->prepare($sql, $type, MDB2_PREPARE_MANIP); $data = array('東京 太郎', '東京都', '03-123-4567'); //変数に代入される値を配列で指定 //プリペアド・ステートメントの実行 $res = $str->execute($data); ?>
UPDATEの場合
<?php $sql = "UPDATE clients SET name = ?, address = ?, phone = ? WHERE id = ?"; $type = array('text', 'text', 'text', 'integer'); //変数に代入する値のタイプ $str = $mdb2->prepare($sql, $type, MDB2_PREPARE_MANIP); $data = array('大阪 太郎', '06-123-4567', 2); //変数に代入される値を配列で指定 $res = $str->execute($data); //プリペアド・ステートメントの実行 ?>
詳しい説明は公式マニュアルhttp://pear.php.net/manual/ja/package.database.mdb2.phpをご覧ください。