我无法find与MySQL代码的错误

我是新手。 我无法从前端插入数据到MySQL数据库。 我在插入时遇到问题。

我的index.js代码

我将表单详细信息存储在一个variables中,并试图将其插入到数据库中

router.post('/signup',function(req,res,next) { var item = req.body; connection.connect(function(err){ var sql = "INSERT INTO details VALUES ? "; connection.query(sql,[item]); }); res.render('data' ,{items:item}); }); 

错误信息

 /home/gayathri/jsonhbs/node_modules/mysql/lib/protocol/Parser.js:80 throw err; // Rethrow non-MySQL errors ^ Error: ER_PARSE_ERROR: 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 '`name` = 'Gayathri', `pwd` = 'def'' at line 1 at Query.Sequence._packetToError (/home/gayathri/jsonhbs/node_modules/mysql/lib/protocol/sequences/Sequence.js:52:14) at Query.ErrorPacket (/home/gayathri/jsonhbs/node_modules/mysql/lib/protocol/sequences/Query.js:77:18) at Protocol._parsePacket (/home/gayathri/jsonhbs/node_modules/mysql/lib/protocol/Protocol.js:279:23) at Parser.write (/home/gayathri/jsonhbs/node_modules/mysql/lib/protocol/Parser.js:76:12) at Protocol.write (/home/gayathri/jsonhbs/node_modules/mysql/lib/protocol/Protocol.js:39:16) at Socket.<anonymous> (/home/gayathri/jsonhbs/node_modules/mysql/lib/Connection.js:103:28) at emitOne (events.js:96:13) at Socket.emit (events.js:188:7) at readableAddChunk (_stream_readable.js:176:18) at Socket.Readable.push (_stream_readable.js:134:10) -------------------- at Protocol._enqueue (/home/gayathri/jsonhbs/node_modules/mysql/lib/protocol/Protocol.js:145:48) at Connection.query (/home/gayathri/jsonhbs/node_modules/mysql/lib/Connection.js:208:25) at Handshake._callback (/home/gayathri/jsonhbs/routes/index.js:46:14) at Handshake.Sequence.end (/home/gayathri/jsonhbs/node_modules/mysql/lib/protocol/sequences/Sequence.js:88:24) at /home/gayathri/jsonhbs/node_modules/mysql/lib/protocol/Protocol.js:225:14 at _combinedTickCallback (internal/process/next_tick.js:73:7) at process._tickCallback (internal/process/next_tick.js:104:9) npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! jsonhbs@0.0.0 start: `node ./bin/www` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the jsonhbs@0.0.0 start script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in: npm ERR! /home/gayathri/.npm/_logs/2017-10-18T03_54_05_403Z-debug.log 

这不是有效的SQL语法。 你不能像这样的一堆值使用占位符,你必须分别打破它们:

 connection.query( "INSERT INTO details (name, pwd) VALUES (?,?)", [ "Name", "Pwd" ] ); 

将所有这些条件作为一个单独的占位符提供给将它们封装在一个string中,这就打破了语法。

重要提示 :始终对密码进行哈希处理,切勿使用纯文本进行存储。 绝对不使用Bcrypt ,专门用于密码,而不是像SHA1那样的一些高速散列或像MD5这样的受损散列。

如果你使用Node,你可能至less要考虑使用Passport ,它可以为你做很多繁重的工作,并且和其他的Node组件搭配使用。