Задать вопрос
@nollo

Как вставить json в mysql?

При добавлении массива преобразованного в строку к базе данных, сервер слетает. Сервер делается на Node.js.
Вот примерный код:
T[0]=1;
T[1]=2;
T[2]="3";
T[3]=4;
T[4]="5";
T=JSON.stringify(T);
connection.query('INSERT INTO `tasks` (`login`,`description`,`type`,`time`) VALUES ("'+req.body.login+'","'+T+'","'+"3"+'","'+st+'")');

Как можно исправить эту ошибку?
  • Вопрос задан
  • 1070 просмотров
Подписаться 1 Оценить 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Тестировщик на Python
    9 месяцев
    Далее
  • Академия Eduson
    Python-разработчик
    9 месяцев
    Далее
  • Merion Academy
    Базы данных с нуля
    2 месяца
    Далее
Решения вопроса 1
Staltec
@Staltec
Node.js разработчик
0) Строку SQL запроса лучше обрамлять двойными кавычками, чтобы спокойно использовать одинарные кавычки внутри запроса для обозначения текстовых констант.

1) Изучите документацию по модулю который используете, там всё описано подробно и доступно.

2) Не вставляйте параметры напрямую в запрос. Никогда.

var T = [1, 2, '3', 4, 5];
connection.query("INSERT INTO `tasks` SET ?", {
  login: req.body.login,
  description: JSON.stringify(T),
  type: 3,
  time: new Date()
}, function(err) {
  if (err) throw err;
});

UPD: а можно даже так
var T = [1, 2, '3', 4, 5];
connection.query("INSERT INTO ?? SET ?", [
  'tasks', 
  {
    login: req.body.login,
    description: JSON.stringify(T),
    type: 3,
    time: new Date()
  }
], function(err) {
  if (err) throw err;
});
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@mayken
"'+"3"+'" - возможно тут крадется ошибка!
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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