首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以节点js代码获取mysql查询的外部文件中的日期。

以节点js代码获取mysql查询的外部文件中的日期。
EN

Stack Overflow用户
提问于 2017-02-16 02:40:33
回答 1查看 342关注 0票数 0

我正在努力实现用sql编写一个外部文件,包括时间戳。

代码语言:javascript
复制
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;

如果我在下面给出的节点js脚本中提供相同的查询,它就失败了。有人能帮忙吗。

代码语言:javascript
复制
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();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-16 03:37:18

根据文档mysql nodejs模块:

出于安全原因,禁用了对多个语句的支持(如果值没有正确转义,则允许SQL注入攻击)。若要使用此功能,必须为连接启用该功能: var connection = mysql.createConnection({multipleStatements: true});

此外,多行工作正常,把它放在后面。以下代码适用于我:

代码语言:javascript
复制
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();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42263854

复制
相关文章

相似问题

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