在 C# 中使用 MySqlCommand 時,開發人員經常會遇到與 Command.Parameters.Add 相關的過時警告。了解這種棄用背後的原因以及新推薦的方法對於編寫安全且高效的資料庫應用程式至關重要。
在早期版本的 MySQL 資料提供者中,Command.Parameters.Add 用於向 SQL 查詢新增參數。然而,隨著參數化查詢的引入,該方法已被 AddWithValue 所取代。
參數化查詢在 SQL 語句中使用佔位符參數,並在執行時將它們與特定值關聯起來。這種方法有助於防止 SQL 注入攻擊,因為參數不直接包含在 SQL 字串中。
替換Parameters.Add with AddWithValue
用於新增的新建議語法參數是:
command.Parameters.AddWithValue("@parameterName", value);
在提供的程式碼中,這將導致in:
command.Parameters.AddWithValue("@mcUserName", mcUserNameNew); command.Parameters.AddWithValue("@mcUserPass", mcUserPassNew); command.Parameters.AddWithValue("@twUserName", twUserNameNew); command.Parameters.AddWithValue("@twUserPass", twUserPassNew);
刪除佔位符周圍的單引號
此外,不再需要在SQL語句中將佔位符用單引號括起來。建議的語法是:
string SQL = "INSERT INTO `twMCUserDB` (`mc_userName`, `mc_userPass`, `tw_userName`, `tw_userPass`) VALUES (@mcUserName, @mcUserPass, @twUserName, @twUserPass)";
結論
透過採用新的AddWithValue 方法並從佔位符中刪除單引號,您可以編寫既安全又安全的SQL 查詢。高效的。這些做法有助於防止 SQL 注入漏洞並確保資料庫操作的完整性。
以上是為什麼 MySqlCommand\ 的Parameters.Add 已過時,以及如何改用 AddWithValue?的詳細內容。更多資訊請關注PHP中文網其他相關文章!