首頁 > 資料庫 > mysql教程 > 當列名可變時,如何動態建立具有參數化值的 SQL 查詢?

當列名可變時,如何動態建立具有參數化值的 SQL 查詢?

Linda Hamilton
發布: 2024-12-18 04:38:15
原創
704 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板