
PHP からデータベース(MySQL)に接続する方法は色々あるようですが、PDO(PHP Data Objects)という仕組みを使ってデータベースに接続してみました。
参考:PHP: PDO – Manual
PDO は PHP5 以上じゃないと使えないみたい。でも PHP5 以上であれば、別途ライブラリをインストールしたりしなくてもいいから簡単で便利。
PDO のマニュアルには小難しいことが色々と書いてありますが、とりあえずデータベースに接続して SQL が発行できるようにしないと話がはじまらない。
ってことで、なにわともあれデータベース(MySQL)に接続するための DBConnection クラスです。
一応、シングルトン・パターンの実装になってます。
ってか、これ、IBM developerWorks か何かで紹介されていたサンプル(をちょっと修正したもの)。
class DBConnection { private $_handle = null; private function __construct() { try { $mysql = "mysql:ホストアドレス; dbname=データベース名"; $user = "ユーザー名"; $pass = "パスワード"; $this->_handle =& new PDO($mysql, $user, $pass); } catch(PDOException $e){ var_dump($e->getMessage()); } public static function get() { static $db = null; if ( $db == null ) $db = new DBConnection(); return $db; } public function handle() { return $this->_handle; } }
この DBConnection クラスの使い方は、
$db = DBConnection::get()->handle();
で、PDO オブジェクトが取得できます。
あとは、PDO オブジェクト($db)を使って SELECT 文を発行してみたり、
prepare( $sql ); $stmt->execute(); $results = $stmt->fetchAll(); } catch ( PDOException $e ){ var_dump($e->getMessage()); } return $results; ?>
INSERT 文を発行してみたり、
prepare($sql); $stmt->bindValue(':name', "taro"); $stmt->bindValue(':age', 18); $stmt->execute(); } catch (PDOException $e){ var_dump($e->getMessage()); } ?>
すれば、DB に接続して、データを取得したり、追加したりできます。UPDATE 文や DELETE 文の発行なども基本的には、これらと同じ感じでできます。
参考:PHP: PDO::query – Manual
参考:PHP: PDO::prepare – Manual
参考:PHP: プリペアドステートメントおよびストアドプロシージャ – Manual
データベース接続って聞くと初めはとっつきにくい。めっちゃ面倒くさそうだし。
だけど一度接続して SQL 文の発行に成功すれば、案外、どうってことなかったりします。
多くの人は心理的ハードルが高いと思いますが、やってみたら実はたいしたハードルじゃなかった、かもですよ。
でわでわ。