提前感谢您看这个问题!因此,我试图将一行数据插入名为 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', '\' 附近使用的正确语法Psychiatry 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 键盘\''、'\'配件\''、'6'、'14'、'\'2018-08-22 12:51:40\'']
从数据数组中完全删除了 connection.escape()(在进行更多研究时,似乎没有必要转义这些值):
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 = [
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
];
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);
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句