記事表示

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を切り替えるようにするかな。

ページ移動

トラックバックURL

  • http://www.favorite-labo.org/blog/trackback/100

トラックバック

  • トラックバックはまだありません。

コメント

  • コメントはまだありません。

コメント投稿

  • コメントを入力して投稿ボタンを押してください。
投稿フォーム
名前
Eメール
URL
コメント
投稿キー

投稿キーには以下の数値を半角で入力してください。(スパム対策)

投稿キー

コメントプレビュー

JavaScriptをONにすると、ここにプレビューを表示できます。

ユーティリティ

2009年01月

- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

ツールメニュー

メッセージ

匿名で一言送信できます。

送信フォーム
メッセージ

RSSリーダー

  • JavaScriptをONにすると、RSSリーダーが表示されます。

利用ツール