[英]ER_PARSE_ERROR when inserting row into MySQL database using node.js
尝试使用 node.js 向 mysql 表添加一行,但不断收到语法错误。 node/express 和 MySQL 的新手(几天前下载了两者的最新版本)。 将我的代码与其他示例进行了比较,但无法弄清楚是什么导致了我一生的错误。 下面的代码和控制台输出。
const express = require('express');
const router = express.Router();
const bcrypt = require('bcryptjs');
const passport = require('passport');
const mysql = require('mysql');
const con = mysql.createConnection({
host: 'localhost',
user: 'theuser',
password: 'thepassword',
database: 'thedatabase'
});
con.connect(function(err) {
if (err) throw err;
console.log('User Connected!');
});
const date1 = new Date();
const newUser = {
first_name: first_name1,
last_name: last_name1,
email: email1,
password: password1,
date: date1
};
const newUser_val = Object.values(newUser)
console.log(newUser_val)
const sql = "INSERT INTO webusers (first_name, last_name, email, password, register_date) VALUES ?";
con.query(sql, [newUser_val], function (err, result, fields) {
if(result) {
req.flash('success_msg', 'You are now registered');
res.redirect('../')
} else {
console.log(err);
};
});
这是相关的控制台输出
User Connected!
[
'Pete',
'Sample',
'pete@gmail.com',
'$2a$10$6ufJWiCaubg8WjE.0AHqrOFi0z3W97mSN48v.vdO7pcl20ZPRBhXW',
2020-03-31T18:54:16.474Z
]
code: 'ER_PARSE_ERROR',
errno: 1064,
sqlMessage: "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''Pete', 'Sample', 'pete@gmail.com', '$2a$10$6ufJWiCaubg8WjE.0AHqrOFi0z3W97mSN48v' at line 1", sqlState: '42000',
index: 0,
sql: "INSERT INTO webusers (first_name, last_name, email, password, register_date) VALUES 'Pete', 'Sample', 'pete@gmail.com', '$2a$10$6ufJWiCaubg8WjE.0AHqrOFi0z3W97mSN48v.vdO7pcl20ZPRBhXW', '2020-03-31 14:54:16.474'"
}
不知道为什么我的问题在没有任何评论的情况下被否决,但唉,我想通了。 “?” 需要在下面的代码中更正的括号:
var sql = "INSERT INTO webusers (first_name, last_name, email, password, register_date) VALUES ( ? );";
这些括号在很多例子中都没有,它们是使我的代码工作所必需的……希望它有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.