SQL - Неверное строковое значение: '\ xEF \ xBF \ xBD' [duplicate]

Я знаю много ответов, но большинство из них предназначены для дополнительных функций и дополнительных классов. Это я лично использую; намного чище и гораздо меньше строк кода!

if( document.body.className.match('category-page') ) { 
  console.log('yes');
}
8
задан Robert H 22 June 2012 в 19:25
поделиться

3 ответа

Mattmanser прав, никогда не пишите SQL-запрос, объединяя параметры непосредственно в запросе. Пример параметризованного запроса:

string lastname = "Doe";
double height = 6.1;
DateTime date = new DateTime(1978,4,18);

var connection = new MySqlConnection(connStr);

try
{
    connection.Open();

    var command = new MySqlCommand(
        "SELECT * FROM tblPerson WHERE LastName = @Name AND Height > @Height AND BirthDate < @BirthDate", connection);

    command.Parameters.AddWithValue("@Name", lastname);
    command.Parameters.AddWithValue("@Height", height);
    command.Parameters.AddWithValue("@Name", birthDate);

    MySqlDataReader reader = command.ExecuteReader();
    ...
}
finally
{
    connection.Close();
}
14
ответ дан Elian Ebbing 26 August 2018 в 23:06
поделиться

Для тех, у кого есть аналогичная проблема с использованием PHP, попробуйте функцию utf8_encode($string). Это просто работает!

0
ответ дан josliber 26 August 2018 в 23:06
поделиться

НИКОГДА, НИКОГДА, НИКОГДА не создавайте такой оператор SQL. Это широко открытое для SQL-инъекции.

Я добавляю это как ответ, так как это такая фундаментальная ошибка, что вам, вероятно, придется переписать большую часть вашей программы.

Это не то, как вы поставляете параметры в оператор SQL, и не стоит никого отвечать на ваш вопрос, поскольку вы должны использовать параметризованные запросы, которые, вероятно, также помогут устранить вашу проблему.

5
ответ дан mattmanser 26 August 2018 в 23:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: