1

私は PDO が初めてで、最初からやりたいと思っています。サイトの古い mysql_ 関数を置き換えるつもりです。

私はそれを正しく理解していますか?:

接続コードを try/catch に入れてファイルに保存し、ページの上部に含める必要があります。次に、クエリも try/catch に入れます。

または:

接続コードをファイルに入れ、クエリの上の try/catch ステートメントの先頭に含める必要がありますか?

ver1:

include('pdo.php'); // try/catch in file

try { 

    $stmt = $conn->prepare('SELECT * FROM myTable WHERE id = :id');
    $stmt->execute(array('id' => $id));

    while($row = $stmt->fetch()) {
        print_r($row);
    }
} catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}

ver2:

try {
    include('pdo.php'); // no try/catch in file

    $stmt = $conn->prepare('SELECT * FROM myTable WHERE id = :id');
    $stmt->execute(array('id' => $id));

    while($row = $stmt->fetch()) {
        print_r($row);
    }
} catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}

または、try/catch を両方の場所に配置する必要がありますか?

4

1 に答える 1

1

両方を行う必要があります。

  • ユーザーにメッセージを表示し、PHP を停止するエラー ハンドラを設定します (「 」を参照set_error_handler) 。
  • 接続を開始するときに、try/catch を追加し、例外をキャッチした場合はエラーをスローします。あなたのウェブサイトは、データベース接続なしでは動作しません。
  • エラーから正常に回復するために、クエリの周りで try/catch を実行します (可能な場合)。
于 2012-07-03T16:24:38.403 に答える