我写了一个大查询并在我的sql程序中进行了测试,成功插入了一行。在Node中,我基本上将此查询转换为字符串并运行它,以便可以从服务器插入数据。
看来我已经可以使用@符号将问题固定在变量分配上。不确定为什么将其视为无效语法吗?
我完全打印出输入到Node函数中的内容,并将其复制到SQL程序中以运行命令。有效。
{ [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中执行查询时,出现语法错误。这可能是什么?
mysql命令行客户端在分隔符上分割多个查询,分隔符默认为;
并将它们分别发送到服务器。
您的代码需要将它们作为实际的单独查询发送到服务器,尽管所有SET
查询都可以组合在一起,SET @a = 1, @b = 2, @c = 3;
依此类推。但是,INSERT
仍然是单独的查询。
某些客户端库可以支持这样发送多个查询的功能,但是您不希望这样做。它代表着一个巨大的安全漏洞。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句