ひとり勉強ログ

ITエンジニアの勉強したことメモ

PDO で MySQL 接続時のやり方

php で PDO を使用して MySQL に接続する方法。

DB への接続

[php] define("DSN", "mysql:host=localhost; dbname=[DB名]; charset=utf8"); define("USERNAME", "ユーザー名"); define("PASSWORD", "パスワード");

try { $dbh = new PDO(DSN, USERNAME, PASSWORD); } catch(PDOException $e) { echo ('Error: ' . $e->getMessage()); die(); } [/php]

トランザクションを使用して実行する例

[php] try {

// エラー発生時に例外を投げる $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = "SELECT * FROM [テーブル名]";

//prepareメソッドでSQLをセット $stmt = $dbh->prepare($sql); $dbh->beginTransaction();

try { //executeでクエリを実行 $stmt->execute(); $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); // コミット $dbh->commit();

} catch(PDOException $e) { $dbh->rollback(); throw $e; }

} catch(PDOException $e) { header('Content-Type: text/plain; charset=UTF-8', true, 500); exit('Fatal Database Error: ' . $e->getMessage()); } [/php]

これで SELECT を実行すると変数 $rows に、DBの項目名をキーとした連想配列として格納される。

array(5) { [0]=> array(2) { ["ID"]=> string(1) "0" ["Name"]=> string(6) "田中" } [1]=> array(2) { ["ID"]=> string(1) "1" ["Name"]=> string(6) "鈴木" } }