準備好的語句中的變數列名稱
問題:
問題:使用準🎜>使用準🎜>使用準🎜>使用準🎜>使用準🎜>使用準🎜>使用準🎜>使用準🎜>使用準🎜>使用準🎜>使用準備好的語句選擇行,您可以使用此指定傳回的列名稱嗎method?
上下文:使用MySQL 和Java,嘗試將列名作為參數包含在準備好的語句中,導致列名作為文字包含在內查詢中的字串,而不是實際列
說明:預備語句旨在透過允許指定參數而不直接插入查詢字串來防止SQL 注入。但是,此機制適用於參數值,而不是用於修改查詢本身。
解決方法:
1。資料庫設計重新考慮:避免將列名稱直接暴露給使用者。相反,請考慮使用不同的機制,例如在資料庫中建立另一列以將所需的列名稱與資料一起儲存。
2.手動查詢建構:如果修改資料庫設計不可行,您可以清理輸入列名稱並手動建構 SQL 查詢。使用 String#replace() 方法轉義列名稱中引號字元的任何實例。
結論:雖然無法指定傳回的欄位作為準備好的語句中的參數,有其他方法可以實現所需的功能。確保正確的輸入清理以防止 SQL 注入漏洞。以上是MySQL中的準備語句可以處理動態指定的列名嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!