在节点js代码中获取mysql查询的outfile中的日期

在节点js代码中获取mysql查询的outfile中的日期,mysql,node.js,Mysql,Node.js,我正在尝试用sql编写一个输出文件,包括时间戳: sql query:SET @TS = DATE_FORMAT(NOW(),'_%Y_%m_%d_%H_%i_%s'); SET @FOLDER = 'now'; SET @EXT = '.csv'; SET @CMD = CONCAT("SELECT * FROM test.extract INTO OUTFILE'",@FOLDER,@TS,@EXT,"' FIELDS TERMINATED BY ',' LINES TERMI

我正在尝试用sql编写一个输出文件,包括时间戳:

sql query:SET @TS = DATE_FORMAT(NOW(),'_%Y_%m_%d_%H_%i_%s');
SET @FOLDER = 'now';
SET @EXT    = '.csv';
SET @CMD = CONCAT("SELECT * FROM test.extract INTO     OUTFILE'",@FOLDER,@TS,@EXT,"' FIELDS TERMINATED BY ',' LINES TERMINATED BY     '\n';");
PREPARE statement FROM @CMD;
EXECUTE statement;
如果我在下面给出的NodeJS脚本中给出相同的查询,那么它将失败。有人能帮忙吗

var mysql      = require('mysql');
var connection = mysql.createConnection({
host     : 'localhost',
user     : 'root',
password : 'root',
database : 'test'
});

connection.connect();

var timeInMs = Date.now();
console.log(timeInMs);


connection.query("SET @TS = DATE_FORMAT(NOW(),'_%Y_%m_%d_%H_%i_%s');
SET @FOLDER = 'now';
SET @EXT    = '.csv';
SET @CMD = CONCAT(
"SELECT * FROM test.extract INTO OUTFILE'",@FOLDER,@TS,@EXT,"' FIELDS     TERMINATED BY ',' LINES TERMINATED BY '\n';");

PREPARE statement FROM @CMD;
EXECUTE statement;",function(err, rows, fields) {
if (!err)
  console.log('The solution is: ', rows);
else
  console.log('Error while performing Query.');
});
connection.end();
根据
mysql
nodejs模块的功能:

出于安全原因,禁用了对多个语句的支持(it 如果值未正确转义,则允许SQL注入攻击)。 要使用此功能,您必须为您的连接启用它:

var connection = mysql.createConnection({multipleStatements: true});
另外,要使多行正确工作,请将其放在backticks中。以下代码适用于我:

var mysql      = require('mysql');
var connection = mysql.createConnection({
host     : 'localhost',
user     : 'root',
password : 'root',
database : 'test',
multipleStatements: true
});

connection.connect();

var timeInMs = Date.now();
console.log(timeInMs);

connection.query(`SET @TS = DATE_FORMAT(NOW(),'_%Y_%m_%d_%H_%i_%s'); 
SET @FOLDER = 'now';
SET @EXT  = '.csv';
SET @CMD = CONCAT(
"SELECT * FROM mysql.user INTO OUTFILE'",@FOLDER,@TS,@EXT,"' FIELDS     TERMINATED BY ',' LINES TERMINATED BY '\n';");
PREPARE statement FROM @CMD;
EXECUTE statement;`    
,function(err, rows, fields) {
if (!err)
  console.log('The solution is: ', rows);
else
  console.log('Error while performing Query.', err);
});
connection.end();

谢谢Nehal,我还有一个问题。我试图查询一个数据库,比如连接多个表并在代码中包含case。在我的代码中如何调用该查询?对不起。我使用了反引号并实现了它。嗨,内哈尔,你能帮我回答这个问题吗。我正在尝试使用fs.appendfile,但无法对其进行故障排除。请帮忙。