首页 > 解决方案 > 尝试将nodejs发送到mysql时出现sql语法错误

问题描述

我收到此错误并且一直卡在它上面,我只是找不到 sql 错误!我收到这个错误

错误:ER_PARSE_ERROR:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'x Disney – Lautsprecher für die Dusche mit Micky Maus-Design, asos, Typo, nul' 附近使用正确的语法

对应于 main.json.result[1] + ", " +

module.exports = { products_into_db: function () {

const insert_products = db_config.fetch("INSERT INTO asos_products " +
"(handle, title,vendor,category,type,gender,color,brand,price,beforeSalePrice,currency,product_code) " +
"VALUES (" + 
main.json.result[0] + ", "+
main.json.result[1] + ", " +
main.json.result[2] + ", " +
main.json.result[3] + ", " +
main.json.result[4] + ", " +
main.json.result[5] + ", "+
main.json.result[6] + ", " +
main.json.result[7] + ", " +
main.json.result[8] + ", " +
main.json.result[9] + ", " +
main.json.result[11] + ", " +
main.json.result[12] + ") " 
)
return insert_products

这是我的 sql 表:

CREATE TABLE `asos_products` (
  `internal_id` bigint(20) NOT NULL AUTO_INCREMENT,
  `handle` varchar(70) NOT NULL,
  `title` varchar(70) NOT NULL,
  `vendor` varchar(30) NOT NULL,
  `category` varchar(30) DEFAULT NULL,
  `type` varchar(30) DEFAULT NULL,
  `gender` varchar(10) DEFAULT NULL,
  `color` varchar(30) DEFAULT NULL,
  `brand` varchar(40) DEFAULT NULL,
  `price` float NOT NULL,
  `beforeSalePrice` float DEFAULT NULL,
  `currency` varchar(3) NOT NULL,
  `product_code` int(30) DEFAULT NULL,
  PRIMARY KEY (`internal_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
SELECT * FROM enroute.asos_products;

标签: javascriptmysqlsqlnode.js

解决方案


对于具有 varchar 类型的列,用逗号将 main.json.result[i] 括起来。例子 -

", '" +
main.json.result[5] + "', "+

它应该工作


推荐阅读