ホームページ >データベース >mysql チュートリアル >列名が可変の場合、パラメータ化された値を使用して SQL クエリを動的に構築するにはどうすればよいですか?

列名が可変の場合、パラメータ化された値を使用して SQL クエリを動的に構築するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-18 04:38:15708ブラウズ

How Can I Dynamically Build SQL Queries with Parameterized Values When Column Names Are Variable?

パラメータ制限による動的クエリの構築

開発者は、動的列名を含むクエリの実行中に、列名をパラメータ化できないという制限に遭遇する可能性があります。 。この問題を回避するには、実行時にクエリを動的に構築する必要があります。

次の機能しない例を考えてみましょう:

SqlCommand command = new SqlCommand("SELECT @slot FROM Users WHERE name=@name; ");
prikaz.Parameters.AddWithValue("name", name);
prikaz.Parameters.AddWithValue("slot", slot);

代わりに、「スロット」入力をホワイトリストに登録します。インジェクション攻撃を防止し、次のようにクエリを構築します:

// TODO: verify that "slot" is an approved/expected value
SqlCommand command = new SqlCommand("SELECT [" + slot +
           "] FROM Users WHERE name=@name; ")
prikaz.Parameters.AddWithValue("name", name);

このアプローチにより、「@name」は動的にパラメータ化されたままになります。変数列名の処理

以上が列名が可変の場合、パラメータ化された値を使用して SQL クエリを動的に構築するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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