在Node.JS中正确的MYSQL查询给我语法错误?

时间:2016-05-30 00:05:44

标签: mysql node.js

我写了一个大查询并在我的sql程序中测试并成功插入了一行。在Node中,我基本上将此查询转换为字符串并运行它,以便我可以从我的服务器插入数据。

似乎我已经能够使用@符号将问题指向变量赋值。不知道为什么这被认为是无效的语法?

Node Code Image Here

我打印出我输入Node函数的确切内容并将其复制到我的SQL程序中以运行命令。它奏效了。

Printed Terminal Output for Query String

错误

{ [Error: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SET @UNIX_DAY=86400; SET @UNIX_WEEK =    604800; SET @INITIAL_TRANSACTION_TIME = 14' at line 1] code: 1064 }

我输入的这个查询字符串已确认有效,但是当我在Node中执行查询时,出现语法错误。这可能是什么?

1 个答案:

答案 0 :(得分:1)

mysql命令行客户端在分隔符上拆分多个查询,默认为;并将它们分别发送到服务器。

您的代码需要将它们作为实际的单独查询发送到服务器,尽管所有SET个查询都可以组合在一起,SET @a = 1, @b = 2, @c = 3;等。但是INSERT是仍然是一个单独的查询。

某些客户端库可以支持发送多个这样的查询,但您不希望这样。它代表了一个巨大的安全漏洞。