ホームページ >Java >&#&チュートリアル >SQL クエリでテーブル名を設定するために準備されたステートメントを使用できないのはなぜですか?

SQL クエリでテーブル名を設定するために準備されたステートメントを使用できないのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-10 05:32:14458ブラウズ

Why Can't I Use Prepared Statements to Set Table Names in SQL Queries?

プリペアド ステートメントを使用したテーブル名の設定

プリペアド ステートメントを使用する場合は、その制限を理解することが重要です。この例では、開発者はパラメータ置換を使用してテーブル名を設定しようとしたときにエラーが発生しました。

問題:

クエリにはソースとしてテーブル名が必要です。データ取得用ですが、「SELECT」ステートメントではテーブル名が次のパラメータを使用していました。

解決策:

準備されたステートメントのパラメーターを使用してテーブル名を動的に設定することはできません。代わりに、クエリ自体内でハードコーディングする必要があります。提供されるソリューションでは、テーブル名をクエリ内の文字列として明示的に含めるようにコードを変更します。

private String query1 = "SELECT plantID, edrman, plant, vaxnode FROM [" + reportDate + "?]";

ハードコードされたテーブル名をパラメータ (?) と組み合わせることで、クエリは動的に日付コンポーネントを更新できます。正しいテーブルへの参照を保持します。

以上がSQL クエリでテーブル名を設定するために準備されたステートメントを使用できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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