PDOでデータベース接続
久々にPHP触った。
それで、DBへの接続とかいつも通りに
<?php mysql_connect("LOCALHOST", "ROOT", ""); mysql_select_db("DB_NAME"); mysql_query("QUERY"); ?>
こんな感じか、もしくはmysqliなんちゃらを使っていたわけですが、
最近はどーやら違うらしい。
それが、PDO(php database object)らしい。
PDO
メリットとしては
・データベースに依存しない
・処理が早い(らしい)
・2回目の発行はキャッシュが効き早い
PHP5から標準になってるらしいから、かなり前からあったはずなのに
全然知らなかった。
技術書ほとんどmysql関数だったし。
使い方
これで接続。(MySQLの場合)
<?php $dsn = "mysql:dbname=DATABASE_NAME;host=LOCALHOST"; $user = "USER_NAME"; $password = "DATABASE_PASSWORD"; try { $pdo = new PDO($dsn, $user, $password); } catch(PDOException $e) { exit("データベースに接続できませんでした".$e->getMessage()); } ?>
クエリー生成、発行
prepareで準備。
必要であればパラメータをbindして
executeで発行。
<?php $stmt = $pdo->prepare( "SELECT * FROM user WHERE name = ? AND email = ?" ); $stmt->bindParam(1, $name, PDO::PARAM_STR); $stmt->bindParam(2, $email, PDO::PARAM_STR); $stmt->execute(); ?>
取り出し
<?php while($data = $stmt->fetch(PDO::FETCH_ASSOC)){ //$data handle } ?>
これで、ひと通りの処理は可能。
これから使うデータベースがMySQLだけとは限らないから
もう少し、勉強してみよう。
他にも、練習用で使ったスクリプトをgitに置いたんで見てください
https://github.com/naoto0822/PDO
nayamagu