2
에서 MySQL의 쿼리를 실행합니다이유는이 명령이 제대로 실행 실 거예요 asp.net
using (MySqlCommand myCommand = new MySqlCommand("Update jobs SET poster_email = '@1', url = '@2' WHERE company = '@3'; ", myConn))
{
myCommand.Parameters.AddWithValue("@1", email);
myCommand.Parameters.AddWithValue("@2", url);
myCommand.Parameters.AddWithValue("@3", company);
myConn.Open();
myCommand.ExecuteNonQuery();
}
을하지만 실제 값으로 3 @ 대체 할 때 작동 :
using (MySqlCommand myCommand = new MySqlCommand("Update jobs SET poster_email = '@1', url = '@2' WHERE company = 'MyCompany'; ", myConn))
{
myCommand.Parameters.AddWithValue("@1", email);
myCommand.Parameters.AddWithValue("@2", url);
myConn.Open();
myCommand.ExecuteNonQuery();
}
이 값은 위해 전달되는 회사 변수는 두 번째 예에서 하드 코드 된 값과 동일합니다. 필자는 디버거를 통해 회사 변수가 매개 변수로 추가되었는지, 그리고 필자가 기대하는 값인지 확인했습니다. 즉. 공백없이 트림()
나는 무엇을 잘못하고 있는지 알 수 있습니까?
업데이트 : "?"나는 MySQL을 사용하려는 명령에 대한 생각
이것은 또한 작동하지만, 그때는 SQL 인젝션에 대해 걱정할 필요가 ...
string myQuery = string.Format("Update jobs SET poster_email = '{0}', url = '{1}' WHERE company = '{2}'; ", email, url, company);
using (MySqlCommand myCommand = new MySqlCommand(myQuery, myConn))
{
myConn.Open();
myCommand.ExecuteNonQuery();
}
나는 그것이 차이를하지, 그것을 시도했다 ... – Pedro