c#和mysql,插入到exeotuib中
当我在c#中使用这个时 它输出这个异常。当我在mysql工作台查询中使用相同的命令时,它不起作用。我知道这不安全,如果有人知道更安全的方法,我会非常感激c#和mysql,插入到exeotuib中,c#,mysql,C#,Mysql,当我在c#中使用这个时 它输出这个异常。当我在mysql工作台查询中使用相同的命令时,它不起作用。我知道这不安全,如果有人知道更安全的方法,我会非常感激 MySql.Data.MySqlClient.MySqlException: 'Unknown column 'x' in 'field list'' 如果您的数据来自不受信任的来源(如用户),您应该真正注意使用准备好的语句。然而,这也应该帮助你解决你的问题 MySqlCommand myCommand = new MySqlCommand(
MySql.Data.MySqlClient.MySqlException: 'Unknown column 'x' in 'field list''
如果您的数据来自不受信任的来源(如用户),您应该真正注意使用准备好的语句。然而,这也应该帮助你解决你的问题
MySqlCommand myCommand = new MySqlCommand("SELECT * FROM myDb.Table WHERE col_A = @val_a AND col_B = @val_b", MySqlConn.conn);
myCommand.Parameters.AddWithValue("@val_a", someUserInput);
myCommand.Parameters.AddWithValue("@val_b", otherUserInput);
myCommand.Prepare();
MySqlDataReader reader = myCommand.ExecuteReader();
我相信这会帮助你朝正确的方向前进。是
id
column是外键吗?注意你的列类型,如果“你必须单引号'x'或mysql将其作为列名。因此在这一部分中,someuserinput是我放置变量的地方。在我的例子中,应该如何看才能正确地看到“INSERT INTO
DBname
tablename(
id,
column1,
column2,
column3)值(6,x,x,x);”
应该是:myCommand=new MySqlCommand(“INSERT INTO DBname.Table(col_1,col_2,col_3)值(@val_1,@val))
myCommand.Parameters.AddWithValue(“@val\u 1”,valueForVal\u 1);//。。。等等。
MySqlCommand myCommand = new MySqlCommand("SELECT * FROM myDb.Table WHERE col_A = @val_a AND col_B = @val_b", MySqlConn.conn);
myCommand.Parameters.AddWithValue("@val_a", someUserInput);
myCommand.Parameters.AddWithValue("@val_b", otherUserInput);
myCommand.Prepare();
MySqlDataReader reader = myCommand.ExecuteReader();