ホームページ >データベース >mysql チュートリアル >SQL クエリのテーブル名にプリペアド ステートメントを使用できないのはなぜですか?

SQL クエリのテーブル名にプリペアド ステートメントを使用できないのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-19 13:41:49409ブラウズ

Why Can't I Use Prepared Statements for Table Names in My SQL Query?

テーブル名入力のプリペアド ステートメントのトラブルシューティング

プリペアド ステートメントを使用してデータ選択のテーブル名を設定しようとすると、クエリの実行中にエラーが継続します。提供されているサンプル コードには次の問題があります。

[Microsoft][ODBC Microsoft Access Driver] Parameter 'Pa_RaM000' specified where a table name is required.

...

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

このシナリオの原因は、テーブル名をパラメータで置き換えることができないことです。準備されたステートメントはこの目的には適していません。テーブル名はクエリにハードコーディングする必要があります。この問題を解決するには、次のアプローチを検討してください:

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

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

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