エントリー

PDOお試し中

概要だけは知っていたけど、実際に使うのは多分初めて。PEAR::DB と同じような感覚で使えて良い感じです。

PDO でのエラー処理は trycatch で捕捉するのが定番みたいですが、PEAR::DB みたいに戻り値のチェックで処理することもできるのですね。
PHP Labo のプログラムは非オブジェクト指向(手続き型)で書くので、エラー処理も昔ながらの方法にしようかなぁ…。その場合、こんな感じ?

<?php

try {
  $pdo = new PDO(
    'mysql:dbname=phpdb;host=localhost',
    'user',
    'pass',
    array(
      PDO::ATTR_ERRMODE => PDO::ERRMODE_SILENT
    )
  );
} catch (PDOException $e) {
  exit($e->getMessage());
}

$stmt = $pdo->query('SELECT * FROM address');
if (!$stmt) {
  list($state, $code, $message) = $pdo->errorInfo();
  exit($state . ':' . $code . ':' . $message);
}

while ($data = $stmt->fetch(PDO::FETCH_ASSOC)) {
  echo $data['no'] . ':' . $data['name'] . "<br>\n";
}

?>

コンストラクタのエラーは trycatch でしか補足できなかった。他に方法が無いか、後でもう少し調べてみます。でもやっぱり、データベースのエラーは全部 trycatch で処理した方がスッキリ書けるかなぁ…。
今のところ使っていないけど、トランザクションを使う場合は特に便利だし。

また、SQLite2を使うかSQLite3を使うかで、コンストラクタに渡す値が微妙に異なります。うーん、設定ファイルでSQLite2、SQLite3、MySQLを切り替えるようにするかな。

ページ移動

ユーティリティ

カテゴリー

検索

エントリー検索フォーム
キーワード

過去ログ

過去ログ表示フォーム
キーワード

Feed