Заранее спасибо за внимание к этому вопросу! Итак, я пытаюсь вставить строку данных в таблицу с именем raw_base.
Вот код:
const express = require('express');
const router = express.Router();
const mysql = require('mysql');
// Import MySQL Options
const options = require('../db_options');
const connection = mysql.createConnection(options);
router.post('/raw', (req, res) => {
let data = [
`${connection.escape(req.body[0].opened)}`,
`${connection.escape(req.body[0].funding_source)}`,
`${connection.escape(req.body[0].replace_existing_device)}`,
`${connection.escape(req.body[0].project)}`,
`${connection.escape(req.body[0].department)}`,
`${connection.escape(req.body[0].ritm_number)}`,
`${connection.escape(req.body[0].item)}`,
`${connection.escape(req.body[0].category)}`,
`${connection.escape(req.body[0].quantity)}`,
`${connection.escape(req.body[0].price)}`,
`${connection.escape(req.body[0].closed)}`
];
connection.query('INSERT INTO `raw_base` (`opened`, `funding_source`, `replace_existing_device`, `project`, `department`, `ritm_number`, `item`, `category`, `quantity`, `price`, `closed`) VALUES ?', [data], (error, results, fields) => {
if (error) throw error;
console.log(results);
});
Как таковая, я получаю следующую ошибку:
Ошибка: ER_PARSE_ERROR: у вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы узнать правильный синтаксис для использования рядом с '' \ '2018-07-26 13: 34: 33 \' ',' 127548298 ',' 0 ',' 0 ',' \ ' Психиатрия Admin-Central \ '', '' в строке 1
Если; тем не менее, я не избегаю значений в массиве данных и добавляю одинарные кавычки вокруг значений в SQL-запросе INSERT, он работает нормально (например, так):
connection.query('INSERT INTO `raw_base` (`opened`, `funding_source`, `replace_existing_device`, `project`, `department`, `ritm_number`, `item`, `category`, `quantity`, `price`, `closed`) VALUES ('
+ '\'' + req.body[0].opened + '\', '
+ '\'' + req.body[0].funding_source + '\', '
+ '\'' + req.body[0].replace_existing_device + '\', '
+ '\'' + req.body[0].project + '\', '
+ '\'' + req.body[0].department + '\', '
+ '\'' + req.body[0].ritm_number + '\', '
+ '\'' + req.body[0].item + '\', '
+ '\'' + req.body[0].category + '\', '
+ '\'' + req.body[0].quantity + '\', '
+ '\'' + req.body[0].price + '\', '
+ '\'' + req.body[0].closed + '\')'
, (error, results, fields) => {
if (error) throw error;
console.log(results);
});
Я также безуспешно пытался добавить одинарные кавычки вокруг каждого значения в массиве данных. Я предполагаю, что это простая синтаксическая проблема, но я не могу точно указать, где именно я ошибаюсь. Еще раз спасибо за помощь!
Вот значения из массива данных (из req.body [0]):
['\' 2018-07-26 13: 34: 33 \ '',
'127548298',
'0',
'0',
'\' Психиатрия Админ-Центральная \ '',
'\' RITM0023102 \ '',
'\' HP USB Keyboard \ '',
'\' Аксессуары \ '',
'6',
'14',
'\' 2018-08-22 12: 51: 40 \ '']