这是一个非常快速的问题
在数据库中更新或插入数据的一种方法是使用准备好的语句,如下所示:
Dim cmd As New MySqlCommand("UPDATE `table` SET `field` = ?value", con)
cmd.Parameters.AddWithValue("?value", "user given value")
cmd.ExecuteNonQuery()
这样做是为了防止任何 SQL 注入的机会。我的问题是我是否使用 mysqlHelper 类来转义字符串。它等同于准备好的陈述吗?换句话说,SQL 注入仍然可能吗?
这是我如何使用转义字符方法
Dim cmd As New MySqlCommand("UPDATE `table` SET `field` =" & MySqlHelper.EscapeString("user given value"),con)
cmd.ExecuteNonQuery()