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

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

Patricia Arquette
リリース: 2025-01-19 13:41:49
オリジナル
362 人が閲覧しました

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

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