1

这是一个非常快速的问题

在数据库中更新或插入数据的一种方法是使用准备好的语句,如下所示:

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()
4

1 回答 1

1

是的,但通常最好通过使用参数以正确的方式进行。不建议使用上述内容。

看看这里

于 2012-10-13T20:51:37.297 回答