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

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

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-14 18:16:12297ブラウズ

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

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