ホームページ  >  記事  >  データベース  >  PDO 例外が Null 値をスローし、実行されないのはなぜですか?

PDO 例外が Null 値をスローし、実行されないのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-28 12:06:01373ブラウズ

Why Are My PDO Exceptions Throwing Null Values and Not Executing?

PDO 例外の処理方法

問題:

PHP PDO クラスの使用中にエラーを処理しようとすると、 null 値を報告し、非アクティブなままであるコード。

コード:

<code class="php">$connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // Exception handling is enabled

$id = 33;
$name = "Mario Bros.";
$url = "http://nintendo.com";
$country = "jp";

try {
    $sql = "UPDATE table_users SET name = :name, url = :url, country = :country WHERE user_id = :user_id";
    $statement = $connection->prepare($sql);
    $statement->bindParam(':user_id', trim($id), PDO::PARAM_INT);
    $statement->bindParam(':name', trim($name), PDO::PARAM_STR);
    $statement->bindParam(':url', trim($url), PDO::PARAM_STR);
    $statement->bindParam(':country', trim($country), PDO::PARAM_STR, 2);
    $status = $statement->execute();
} catch (PDOException $e) {
    echo $e->getMessage();
}</code>

解決策:

PDO はスローされない自動的に例外が発生します。例外処理を有効にするには、クエリを実行する前に次の行を追加する必要があります:

<code class="php">$connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);</code>

説明:

PDO エラー モードを ERRMODE_EXCEPTION に設定することで、すべての PDO 関連のエラーは例外としてスローされます。 try/catch ブロックを使用してこれらの例外を処理し、ユーザーまたはログ システムに意味のあるエラー メッセージを提供できます。

以上がPDO 例外が Null 値をスローし、実行されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。