在写sql语句的时候,如果采用组合的方式,那么如果用户恶意输入,就会对数据库造成各种各样的损害
例如:
string username = "ssssda";
string password = "dfa';delete from user;";
MySqlCommand cmd = new MySqlCommand("insert into user set username='" + username+"'"+",password='"+password+"'",conn);//会引发sql注入问题
这样 ,程序执行后,user表的所有内容都会被删除
为了解决这个问题,需要使用以下方法
MySqlCommand cmd = new MySqlCommand("insert into user set username=@un,password=@pwd", conn);
cmd.Parameters.AddWithValue("un", username);
cmd.Parameters.AddWithValue("pwd", password);
这样,执行后,会出现
也就是说,无论用户输入什么,都会被当成参数添加到数据库的表中,因此避免了sql注入的问题