首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >(Mysql)使用nodejs存储过程插入数据?

(Mysql)使用nodejs存储过程插入数据?
EN

Stack Overflow用户
提问于 2015-11-25 14:02:24
回答 1查看 6.9K关注 0票数 1

我编写了这段代码,但当我尝试使用mysql:中的存储过程时,我不知道为什么这段代码在mysql db中出错

代码语言:javascript
复制
var mysql = require("mysql");

var con = mysql.createConnection({
    host: "localhost",
    port: "8889",
    user: "root",
    password: "root",
    database: "ResetAccountTest"
});

con.connect(function(err){
    if(err){
       console.log('Error connecting to Database');
       return;
    } console.log('Connection established');
});

var accountTest = { email: 'mra@fpt.edu.vn', password: 'root', bit: '1' };
con.query('call newAccount(?, ?, ?)', accountTest, function(err, result) {
    if (err) throw err;

    console.log(result.insertId);
});

con.end(function(err) {
// The connection is terminated gracefully
// Ensures all previously enqueued queries are still
// before sending a COM_QUIT packet to the MySQL server.
});

这是错误:

代码语言:javascript
复制
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 '?, ?)' at line 1
at Query.Sequence._packetToError (/Users/mikegraham/Documents/WebstormProjects/reset-password/node_modules/mysql/lib/protocol/sequences/Sequence.js:48:14)
at Query.ErrorPacket (/Users/mikegraham/Documents/WebstormProjects/reset-password/node_modules/mysql/lib/protocol/sequences/Query.js:83:18)
at Protocol._parsePacket (/Users/mikegraham/Documents/WebstormProjects/reset-password/node_modules/mysql/lib/protocol/Protocol.js:274:23)
at Parser.write (/Users/mikegraham/Documents/WebstormProjects/reset-password/node_modules/mysql/lib/protocol/Parser.js:77:12)
at Protocol.write (/Users/mikegraham/Documents/WebstormProjects/reset-password/node_modules/mysql/lib/protocol/Protocol.js:39:16)
at Socket.<anonymous> (/Users/mikegraham/Documents/WebstormProjects/reset-password/node_modules/mysql/lib/Connection.js:96:28)
at emitOne (events.js:77:13)
at Socket.emit (events.js:169:7)
at readableAddChunk (_stream_readable.js:146:16)
at Socket.Readable.push (_stream_readable.js:110:10)
--------------------
at Protocol._enqueue (/Users/mikegraham/Documents/WebstormProjects/reset-password/node_modules/mysql/lib/protocol/Protocol.js:135:48)
at Connection.query (/Users/mikegraham/Documents/WebstormProjects/reset-password/node_modules/mysql/lib/Connection.js:201:25)
at Object.<anonymous> (/Users/mikegraham/Documents/WebstormProjects/reset-password/app.js:20:5)
at Module._compile (module.js:425:26)
at Object.Module._extensions..js (module.js:432:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:311:12)
at Function.Module.runMain (module.js:457:10)
at startup (node.js:136:18)
at node.js:972:3

对不起,伙计们,我是nodejs的初学者。我希望社区能帮我解决这个问题:D

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-25 19:19:49

I用变更行20解决了这个问题: var sql = con.query('call newAccount(?,?,?)',accountTest.email,accountTest.password,accountTest.bit,function(err,result) { if (err)抛错误;console.log(result.insertId);};

代码语言:javascript
复制
var mysql = require("mysql");

var con = mysql.createConnection({
    host: "localhost",
    port: "8889",
    user: "root",
    password: "root",
    database: "ResetAccountTest"
});

con.connect(function(err){
    if(err){
       console.log('Error connecting to Database');
       return;
    } console.log('Connection established');
});

var sql = con.query('call newAccount(?, ?, ?)', [accountTest.email, accountTest.password, accountTest.bit], function(err, result) { 
      if (err) throw err; 
      console.log(result.insertId); 
});

con.end(function(err) {
// The connection is terminated gracefully
// Ensures all previously enqueued queries are still
// before sending a COM_QUIT packet to the MySQL server.
});
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33918511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档