Mysql 是否从node.js multipleStatements查询中获取结果?
我有下面的Mysql 是否从node.js multipleStatements查询中获取结果?,mysql,node.js,node-mysql,Mysql,Node.js,Node Mysql,我有下面的node.js代码通过mysql模块执行它下面的SQL,但是它正在将null打印到控制台,即使在同一mysql用户帐户下手动执行的SQL本身返回预期值。在执行此操作以检索适当结果的过程中,是否缺少某些内容 let wipeSQL = fs.readFileSync('./inc/sql/wipedb.sql', 'utf8').replace('%%DATABASE_NAME%%', conf['databasedatabase']); conn.query(wipeSQL, (err
node.js
代码通过mysql
模块执行它下面的SQL
,但是它正在将null
打印到控制台
,即使在同一mysql
用户帐户下手动执行的SQL
本身返回预期值。在执行此操作以检索适当结果的过程中,是否缺少某些内容
let wipeSQL = fs.readFileSync('./inc/sql/wipedb.sql', 'utf8').replace('%%DATABASE_NAME%%', conf['databasedatabase']);
conn.query(wipeSQL, (err, results, fields) => {
if (err) {
conn.destroy();
reject (false);
return;
}
console.log(results[results.length - 1][0]['@procedures'], fields[fields.length - 1]);
resolve();
});
其目的是解决
MySQL
中的一个问题,该问题阻止从动态SQL
和从另一个存储过程中删除函数和存储过程,要求我返回要删除的内容,然后作为单独的语句执行。删除那些函数
和存储过程
的解决方案也同样有效,但我不希望它存在(这是一个来自PHP
的端口,其中多语句返回工作正常。控制台输出,如果有帮助:
null [ FieldPacket {
catalog: 'def',
db: '',
table: '',
orgTable: '',
name: '@procedures',
orgName: '',
charsetNr: 33,
length: 50331645,
type: 250,
flags: 0,
decimals: 31,
default: undefined,
zeroFill: false,
protocol41: true } ]
在conn.query之前执行console.log(wipeSQL)并检查生成并传递给conn.query的查询。然后在mysql查询浏览器上手动触发此查询以查看结果。do console.log(wipeSQL)在conn.query之前,检查生成并传递给conn.query的查询。然后在mysql查询浏览器上手动启动此查询以查看结果。@AJS好吧,这太愚蠢了。今晚可能是时候发布了,问题归结为替换。替换(“%%DATABASE_NAME%%”,conf['databasedatabase'])
为。拆分(“%%DATABASE_NAME%%”)。加入(conf['databasedatabase'])
谢谢,如果您发布了具有此效果的答案,我将接受,因为您找到了它。欢迎…作为答案添加。。。
null [ FieldPacket {
catalog: 'def',
db: '',
table: '',
orgTable: '',
name: '@procedures',
orgName: '',
charsetNr: 33,
length: 50331645,
type: 250,
flags: 0,
decimals: 31,
default: undefined,
zeroFill: false,
protocol41: true } ]