我试图创建一个sql搜索,根据存储在字符串变量中的用户名来过滤帖子。我在格式化问题时遇到了问题,并且想知道是否有人可以帮助或告诉我我做错了什么。
foreach (var getrow in DB.Query("Select * from Posts where Username=" + username)
答案 0 :(得分:1)
这有帮助吗?
"Select * from Posts where Username='" + username + "'"
请参阅下面的解决方案。 请注意下面的SQL注入中的Ahmed的评论。
答案 1 :(得分:1)
我认为更好的方法是......
var sql = "SELECT * From Posts WHERE username = @0"
...然后使用DB.Query(sql, username)
这有助于防止sql injection attacks
答案 2 :(得分:0)
在尝试创建与数据库的连接时,您更有可能在ASP.NET中使用参数。它降低了被黑客攻击的风险。
你应该尝试的是以下
foreach (var getrow in DB.Query(
"SELECT * FROM Posts WHERE Username =@0", username);
此外,请转到https://en.wikipedia.org/wiki/SQL_injection以了解有关SQL注入的更多信息以及可用于防止它的方法。