ホームページ > データベース > mysql チュートリアル > MySQLi の「prepare()」戻り値は準備エラーのみを示しますか、それとも実行エラーも示しますか?

MySQLi の「prepare()」戻り値は準備エラーのみを示しますか、それとも実行エラーも示しますか?

Mary-Kate Olsen
リリース: 2024-12-14 18:16:12
オリジナル
291 人が閲覧しました

Does MySQLi's `prepare()` Return Value Indicate Only Preparation Errors or Also Execution Errors?

MySQLi プリペアド ステートメントのエラー レポート

MySQLi を利用して SQL クエリを実行する場合、エラー レポートを効果的に処理することが重要です。提供されたコード スニペットでは、SQL 準備中のエラーを検出するために stmt_init() メソッドの戻り値が使用されていますが、次のような疑問が残ります。

prepare ステートメントの戻り値は SQL のエラーのみを示しているのか?ステートメントの準備エラーですか、それとも実行エラーですか?

これを解明するには、次の代替エラー処理を検討してください。アプローチ:

if($stmt_test->execute()) $errorflag=true;
ログイン後にコピー

このコードは、ステートメントの実行中にエラーをチェックします。ただし、prepare() メソッドの戻り値には準備エラーと実行エラーの両方が含まれるため、この追加チェックを実装する必要はありません。

包括的なエラー報告を確実に行うには、接続コードに次の行を追加することをお勧めします。 :

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
ログイン後にコピー

これにより、すべての mysqli エラーのレポートが有効になります。その結果、次の例に示すように、戻り値をチェックしてステートメントを直接記述する必要がなくなります。

$stmt = $mysqli->prepare("INSERT INTO testtable VALUES (?,?,?)");
$stmt->bind_param('iii', $x, $y, $z);
$stmt->execute();
ログイン後にコピー

いずれかの段階でエラーが発生した場合、PHP 例外がスローされます。 。この例外は、他の PHP エラーと同様に処理または報告できます。 PHP エラー レポートを適切に構成すると、開発中にエラーが画面上に表示され、運用サーバーに記録されるようになります。

以上がMySQLi の「prepare()」戻り値は準備エラーのみを示しますか、それとも実行エラーも示しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート