У меня есть функция, которая должна принимать x2 String Inputs и вставлять их в базу данных MySQL. Две строки являются результатами запроса и могут быть чем угодно. Я получаю эту ошибку во время тестирования.
ex {"У вас ошибка в синтаксисе SQL; обратитесь к руководству, которое
соответствует вашей версии сервера MySQL для правильного использования синтаксиса
Это хорошее начало, но я могу гарантировать, что этого не произойдет. Он не
в строке 1 "} System.Exception {MySql.Data.MySqlClient.MySqlException}
После некоторого размышления я пришел к выводу, что он выдает ошибку, потому что одна из моих строк содержит символ апострофа и работает с синтаксисом mySQL. Что я могу сделать со своими строками, чтобы убедиться, что они могут быть вставлены как есть со всеми их символами в моей таблице?
Я пробовал манипулировать строками и использовать функцию AddWithValue (), но пока ни одна из них не сработала. Я думал, что использование функции Replace поможет, но я уверен, что правильный синтаксис mySQL я хочу вывести.
Любые мысли / советы приветствуются. Спасибо.
public void Insert(string SearchQuery, string QueryResult)
{
const string connString = "SERVER=localhost; DATABASE=social_db; UID=root; PASSWORD=pass;";
MySqlConnection connection = new MySqlConnection(connString);
MySqlCommand command = connection.CreateCommand();
QueryResult = QueryResult.Replace("'", "\'");
command.CommandText =
"INSERT INTO social_tbl (SearchQuery, QueryResult)"
+ " VALUES "
+ "('" + SearchQuery + "', '" + QueryResult + "');";
//command.CommandText =
//"INSERT INTO social_tbl (SearchQuery, QueryResult) VALUES ('@SearchQuery', '@QueryResult');";
//command.Parameters.AddWithValue("@SearchQuery", SearchQuery);
//command.Parameters.AddWithValue("@QueryResult", QueryResult);
connection.Open();
command.ExecuteNonQuery();
connection.Close();
}