javascript - 尝试将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;
解决方案
对于具有 varchar 类型的列,用逗号将 main.json.result[i] 括起来。例子 -
", '" +
main.json.result[5] + "', "+
它应该工作
推荐阅读
- c++ - 1.显示函数中的最后一个数据被打印2次 2.删除函数中的数据没有被删除并且Attend2.txt文件没有被删除
- python - 如何在 docker-compose 中将 2 个正在运行的容器相互连接?
- python - 如何将所有数据框列连接成一列?
- javascript - Bcryptjs - 使用同步与异步解决方案?
- android-camera2 - 有没有在 Android Jetpack 中拍照的最小示例?(无预览,无用户交互)
- wxwidgets - 框架/面板中的 wxPython 验证器不起作用
- webpack - 为什么 [name] 在 Webpack 的 MiniCssExtractPlugin 中总是主要的?
- clojure - Clojure:找不到类的编解码器
- keyboard - 使用 xcb xtest 生成按键
- python - 如何使用 python 从 sqlite BLOB 字段创建 WAV 文件