問題:
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 サイトの他の関連記事を参照してください。