Как добавить объект карты в mysql в nodeJS? - PullRequest
0 голосов
/ 06 мая 2020

Я впервые создаю объект карты и пытаюсь добавить его в базу данных mysql, но у меня есть ошибка, которая говорит: «У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MariaDB, для правильного синтаксиса для использования рядом с 'key =' # 42343731 '' в строке 1 ".

Примеры элементов внутри объекта карты следующие:

Map {
'#44928649' => {
  id: '#44928649',
  name: '508',
  year: '2020',
  price: 34800,
  included_tax: true,
  state: true
},
 '#44899990' => {
 id: '#44899990',
 name: 'yaris',
 year: '2018',
 price: 17800,
 included_tax: true,
 state: true
 }
}

Мой запрос следующий:

 function addNewElement(value, key, map){
           connection.query("INSERT INTO test(id, name, year, price, included_tax, status) VALUES ?", {key}, (err, res) => {
                if (err) throw err;
                console.log("new element: ", res.insertId)
            });
 }
 carsList.forEach(addNewElement);

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

Спасибо!

1 Ответ

1 голос
/ 06 мая 2020

{key} возвращает ключ карты, которую вы определили. т.е. '# 44928649' или '# 44899990'.

Это означает, что ваш оператор SQL выглядит следующим образом:
INSERT INTO test(id, name, year, price, included_tax, status) VALUES '#44928649'

Что вам нужно сделать, так это вернуть значение ключа на карте

Попробуйте следующее:

connection.query("INSERT INTO test (id, name, year, price, included_tax, status) SET ?", value, (err, res)...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...