У вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с '

0

Я пытаюсь вставить html-страницы в MySQL с моим проектом Asp.NET, но я получаю ошибку;

 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'de Osman patlaması', '', '<div style=\"text-align: center\">\r\n<img src=\"/i' at line 1

Как я могу исправить эту проблему со своим кодом на стороне сервера,

MySqlConnection myCon = new MySqlConnection();
myCon.ConnectionString = ConfigurationManager.ConnectionStrings["MySQLConnectionString"].ConnectionString;
MySqlCommand cmd = new MySqlCommand();
cmd.CommandType = CommandType.Text;

string query = @"INSERT INTO `test`.`posts` (`id`, `author`, `title`, `description`, `content`, `ispublished`, `iscommentsenabled`, `pubDate`, `lastModified`, `raters`, `rating`, `slug`, `tags`, `categories`) VALUES (NULL, '{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', '{9}', '{10}', '{11}', '{12}')";
query = String.Format(query, p.author, p.title, p.description, p.content, p.ispublished, p.iscommentsenabled, p.pubDate, p.lastModified, p.raters, p.rating, p.slug, p.tags, p.categories);

cmd.CommandText = query;
cmd.Connection = myCon;
cmd.Connection.Open();
cmd.ExecuteNonQuery();
cmd.Connection.Close();

Спасибо за вашу помощь.

    MySqlConnection myCon = new MySqlConnection();
    myCon.ConnectionString = ConfigurationManager.ConnectionStrings["MySQLConnectionString"].ConnectionString;
    MySqlCommand cmd = new MySqlCommand(@"INSERT INTO posts (id,  author ,  title ,  description ,  content ,  ispublished ,  iscommentsenabled ,  pubDate 
    ,  lastModified ,  raters ,  rating ,  slug ,  tags ,  categories ) 
        VALUES (@id ,@author ,@title ,@description ,@content ,@ispublished ,@iscommentsenabled ,@pubDate ,@lastModified ,@raters ,@rating ,@slug ,@tags ,
        @categories ))", myCon);
    cmd.CommandType = CommandType.Text;

    cmd.Parameters.AddWithValue("@id", null);
    cmd.Parameters.AddWithValue("@author", p.author);
    cmd.Parameters.AddWithValue("@title", p.title);
    cmd.Parameters.AddWithValue("@description", p.description);
    cmd.Parameters.AddWithValue("@content", p.content);
    cmd.Parameters.AddWithValue("@ispublished", p.ispublished);
    cmd.Parameters.AddWithValue("@iscommentsenabled", p.iscommentsenabled);
    cmd.Parameters.AddWithValue("@pubDate", p.pubDate);
    cmd.Parameters.AddWithValue("@lastModified", p.lastModified);
    cmd.Parameters.AddWithValue("@raters", p.raters);
    cmd.Parameters.AddWithValue("@rating", p.rating);
    cmd.Parameters.AddWithValue("@slug", p.slug);
    cmd.Parameters.AddWithValue("@tags", p.tags);
    cmd.Parameters.AddWithValue("@categories", p.categories);
    myCon.Open();
    cmd.Prepare();
    cmd.ExecuteNonQuery();
    myCon.Close();
  • 0
    Пожалуйста, покажите окончательный запрос с фактическими данными в нем
Теги:

2 ответа

2
Лучший ответ

Используйте MySqlCommand.Parameters.Add, чтобы добавить свои параметры. Этот автоэкспонирует и проверяет ваши параметры.

  • 0
    Я получаю ошибки. Я добавил свой код в пост. Можете ли вы сказать мне, где моя вина? Извините, я использовал только MSSQL и ничего не знаю о соединениях asp.net mysql.
  • 0
    Решил мою проблему. Есть еще один ')', и я удалил его. Чем я изменил свой '@' на '?' и это решено спасибо всем.
1

Одна из ваших строк имеет в ней символ ', рано закрывая строку и создавая синтаксическую ошибку.
(Это уязвимость SQL Injection)

Чтобы исправить это, вам нужно использовать параметры; обратитесь к документации для ваших классов MySQL для примеров.

  • 0
    Я знаю, что это из-за характера, но я спрашиваю, как это можно исправить?
  • 0
    Вам нужно использовать параметры. Проконсультируйтесь с вашей документацией

Ещё вопросы

Сообщество Overcoder
Наверх
Меню