请问node.js中的mysql模块怎么执行存储过程?
发布于 3年前 作者 disburden 2084 次浏览

小弟初学,很多东西不是很明白. 比如我要调用一个名叫proc1的存储过程,调用之前我要锁定一张表,是用以下哪种方式靠谱? 方法一=========================================== var mysql=new MySql(); mysql.user=’root’; mysql.password=’XXXX’; mysql.query('USE '+dataBaseName); mysql.query(“set names 'latin1’”); mysql.query('lock table tb1’,function selectCb(err,results,fields) { if (err) { throw err; } mysql.query('call proc1(p1,p2,[[[[[[[[[[[[[[[[[[[@p3](/user/p3)](/user/p3)](/user/p3)](/user/p3)](/user/p3)](/user/p3)](/user/p3)](/user/p3)](/user/p3)](/user/p3)](/user/p3)](/user/p3)](/user/p3)](/user/p3)](/user/p3)](/user/p3)](/user/p3)](/user/p3)](/user/p3))',function selectCb(err,results,fields) { if (err) {throw,err}; mysql.query('unlock tables’,function selectCb(err,results,fields) { // } }

  });

mysql.end();

方法二=================================== var mysql=new MySql(); mysql.user=’root’; mysql.password=’XXX’; mysql.query('USE '+dataBaseName); mysql.query(“set names 'latin1’”); mysql.query(“lock table tb1”); mysql.query("call proc1(p1,p2,[[[[[[[[[[[[[[[[[[[@p3](/user/p3)](/user/p3)](/user/p3)](/user/p3)](/user/p3)](/user/p3)](/user/p3)](/user/p3)](/user/p3)](/user/p3)](/user/p3)](/user/p3)](/user/p3)](/user/p3)](/user/p3)](/user/p3)](/user/p3)](/user/p3)](/user/p3))"); mysql.query(“unlock tables”); mysql.end();

1 回复

自己搞定了 不过又有个问题 就是out参数@p3不知道怎么读出来 我把multipleStatements: true打开了 把’select @p3'这句sql和调用存储过程的sql一起执行 但是results一直是 '{"affectedRows":0,"insertId":0,"serverStatus":42,"warningCount":1,"message":""}’这些内容 取不到@p3的值 麻烦高手帮忙解答一下

回到顶部