我有一个名为Insert()
的方法。除了自增外,一切都按预期工作。以下是代码:
public void Insert(string m1,int y1,int new_count)
{
string query = "INSERT INTO page_counter (id,month,year,page_count) VALUES('','"+m1+"',"+y1+","+new_count+")";
//create command and assign the query and connection from the constructor
MySqlCommand cmd = new MySqlCommand(query, connection);
//Execute command
cmd.ExecuteNonQuery();
//close connection
this.CloseConnection();
}
我的ID列是自动递增的。那么我的问题是,如何将值插入数据库并使表中的ID继续自动递增?
m1
或y1
中。考虑一下如果他们把这个写进了你获取m1
的任何地方:'; DROP TABLE USERS;
因为恶意用户附加了文本到你的字符串,你的代码会直接在服务器上执行那段代码。使用参数化SQL可以确保没有人可以直接插入SQL命令到查询中。你把查询从字符串文字中拿出来,并将数据视为数据而不是文本。 - Evan LSELECT customer_id FROM customer
等等... - Evan LMySqlCommand cmd = new MySqlCommand
块下面,但在cmd.ExecuteNonQuery
之前。语法如下:cmd.Parameters.AddWithValue("@MyParameter", theValueIWantToAssign);
确保在@Parameter
周围加上引号。如果您直接复制/粘贴我的代码,它应该可以工作。 - Evan L