PDO で MySQL 接続時のやり方

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

DB への接続

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();
}

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

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());
}

これで 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) “鈴木”
}
}

php TIPS の一覧