ホームページ  >  記事  >  データベース  >  準備されたステートメントで MySQLSyntaxErrorException が発生するのはなぜですか?

準備されたステートメントで MySQLSyntaxErrorException が発生するのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-01 08:25:02804ブラウズ

Why Am I Getting a MySQLSyntaxErrorException with My Prepared Statement?

MySQL プリペアド ステートメント エラー: MySQLSyntaxErrorException

Java プログラミングでは、SQL ステートメントの構文に問題があると MySQLSyntaxErrorException がスローされます。 。このエラーが発生するシナリオの 1 つは、パラメータ化されたクエリでプリペアド ステートメントを使用する場合です。特定のケースを詳しく調べて解決策を提供しましょう。

指定されたコードには、ad_id に基づいて ads_tbl テーブルからデータを取得するための準備されたステートメントを使用する select ステートメントが含まれています。ただし、ステートメントの実行時にエラーが発生します。SQL 構文にエラーがあります。 「?」の近くで使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。これは、SQL ステートメントの構文に問題があることを示しています。

詳しく調べると、問題は次の行にあります。

<code class="java">rs = stmt.executeQuery(selectSQL);</code>

プリペアド ステートメントを実行する正しい方法SQL ステートメント自体を、executeQuery() の引数として省略することです。これは、プリペアド ステートメントがすでに適切なパラメータで設定されており、SQL ステートメントを使用せずにexecuteQuery() を呼び出すとプリペアド ステートメントが実行されるためです。

したがって、コードを次のように変更する必要があります。

<code class="java">rs = stmt.executeQuery();</code>

この変更を行うことで、準備されたステートメントを使用して SQL ステートメントが正しく実行され、エラーが解決されるはずです。

以上が準備されたステートメントで MySQLSyntaxErrorException が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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