使用转义的 req.body 值数组插入 mysql 时出现 SQL 语法错误

西弗斯

提前感谢您看这个问题!因此,我试图将一行数据插入名为 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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用python将值导入MySQL数据库时出现SQL语法错误

来自分类Dev

插入操作时python和mysql的sql语法错误

来自分类Dev

MySQL World数据库sql文件在插入数据时出现语法错误

来自分类Dev

使用PreparedStatement从Servlet插入时出现Mysql语法错误

来自分类Dev

使用MS SQL ODBC插入时出现语法错误

来自分类Dev

MySQL-在where语句中使用<>时出现语法错误(插入)

来自分类Dev

使用PDO和SQL Server插入日期时出现“语法错误或访问冲突”

来自分类Dev

使用PDO和SQL Server插入日期时出现“语法错误或访问冲突”

来自分类Dev

从PHP插入查询时出现MySQL语法错误

来自分类Dev

在 PHP 中插入 MySQL 表时出现语法错误

来自分类Dev

使用mysql DATE_FORMAT时出现语法错误

来自分类Dev

使用mysql DATE_FORMAT时出现语法错误

来自分类Dev

使用语句时出现 MySQL 1064 语法错误

来自分类Dev

使用原始 SQL SELECT 命令时出现语法错误

来自分类Dev

在 sql 查询中使用 LIKE 时出现语法错误

来自分类Dev

插入表时 SQL 语法错误

来自分类Dev

PHP语法错误,使用数组时出现意外的“ [”

来自分类Dev

在java中使用数组时出现简单的语法错误

来自分类Dev

通过 SQLCMD 将 sql 文件从 MySQL 导入 MS SQL 时出现语法错误

来自分类Dev

尝试在sql中声明变量并使用if-else语句时出现语法错误。-“ VARCHAR”或附近的语法错误

来自分类Dev

Mysql查询中出现1064 Sql语法错误

来自分类Dev

尝试将nodejs发送到mysql时出现sql语法错误

来自分类Dev

尝试在 SQL 中插入多行时出现语法错误?

来自分类Dev

奇怪的语法错误使用PHP时MySQL错误

来自分类Dev

奇怪的语法错误使用PHP时MySQL错误

来自分类Dev

MySQL-尝试插入字符串/数字时出现语法错误

来自分类Dev

在MySQL中插入许多列时的语法错误

来自分类Dev

使用 SQL 查询出现奇怪的语法错误

来自分类Dev

在MYSQL中声明FOREIGN KEY时出现语法错误(使用innoDB)

Related 相关文章

  1. 1

    使用python将值导入MySQL数据库时出现SQL语法错误

  2. 2

    插入操作时python和mysql的sql语法错误

  3. 3

    MySQL World数据库sql文件在插入数据时出现语法错误

  4. 4

    使用PreparedStatement从Servlet插入时出现Mysql语法错误

  5. 5

    使用MS SQL ODBC插入时出现语法错误

  6. 6

    MySQL-在where语句中使用<>时出现语法错误(插入)

  7. 7

    使用PDO和SQL Server插入日期时出现“语法错误或访问冲突”

  8. 8

    使用PDO和SQL Server插入日期时出现“语法错误或访问冲突”

  9. 9

    从PHP插入查询时出现MySQL语法错误

  10. 10

    在 PHP 中插入 MySQL 表时出现语法错误

  11. 11

    使用mysql DATE_FORMAT时出现语法错误

  12. 12

    使用mysql DATE_FORMAT时出现语法错误

  13. 13

    使用语句时出现 MySQL 1064 语法错误

  14. 14

    使用原始 SQL SELECT 命令时出现语法错误

  15. 15

    在 sql 查询中使用 LIKE 时出现语法错误

  16. 16

    插入表时 SQL 语法错误

  17. 17

    PHP语法错误,使用数组时出现意外的“ [”

  18. 18

    在java中使用数组时出现简单的语法错误

  19. 19

    通过 SQLCMD 将 sql 文件从 MySQL 导入 MS SQL 时出现语法错误

  20. 20

    尝试在sql中声明变量并使用if-else语句时出现语法错误。-“ VARCHAR”或附近的语法错误

  21. 21

    Mysql查询中出现1064 Sql语法错误

  22. 22

    尝试将nodejs发送到mysql时出现sql语法错误

  23. 23

    尝试在 SQL 中插入多行时出现语法错误?

  24. 24

    奇怪的语法错误使用PHP时MySQL错误

  25. 25

    奇怪的语法错误使用PHP时MySQL错误

  26. 26

    MySQL-尝试插入字符串/数字时出现语法错误

  27. 27

    在MySQL中插入许多列时的语法错误

  28. 28

    使用 SQL 查询出现奇怪的语法错误

  29. 29

    在MYSQL中声明FOREIGN KEY时出现语法错误(使用innoDB)

热门标签

归档