【发布时间】:2020-04-13 01:17:50
【问题描述】:
我正在处理一个需要将多行添加到 MySQL 表的项目,由于连接的高延迟,我试图在一个命令中添加所有值以节省时间。
到目前为止,我有一个由字符串数组确定的 SQL 查询(每个字符串都是一个“令牌”),这是通过一个 foreach 循环完成的,该循环在插入查询上添加一个值,但是,这种方法由于我找不到在命令中添加参数的方法,因此很难防止 SQL 注入。我不熟悉其他预防注射的方法,但对新想法持开放态度。
query = "INSERT INTO tokenlist(token, user_id) VALUES";
foreach (string tok in tokens)
{
query += " ('" + tok + "', " + logedinId + "),";
}
if (query != "INSERT INTO tokenlist(token, user_id) VALUES")
{
query = query.Remove(query.Length - 1);
query += ";";
if (OpenConnection() == true) {
MySqlCommand cmd = new MySqlCommand(query, mysqlcon);
cmd.ExecuteNonQuery();
CloseConnection();
}
}
【问题讨论】:
-
MySqlDataAdapter是一个选项。见:stackoverflow.com/a/30781587/2419531
标签: c# mysql sql sql-injection