gpt4 book ai didi

mysql - VALID 查询上的 Nodejs MySQL ER_PARSE_ERROR

转载 作者:可可西里 更新时间:2023-11-01 07:39:23 25 4
gpt4 key购买 nike

我已经尝试将 mysql lib 与 nodejs 一起使用,并且像 SELECT * FROM table; 这样的简单查询有效,但现在我已经尝试构建一个真正的查询来更新我的数据库,但它没有不工作。

我使用了在线验证工具,它已通过验证。

    var mysql = require('mysql');
var request = require('request');
request.get('http://localhost:8080/dump/asda.dump', function (error, response, body) {
if (!error && response.statusCode == 200) {
var data =JSON.parse(body);
var products = data['products'][0];
var myquery = "INSERT INTO `products2` (";
var midquery = ") VALUES (";

for (var k in products) {
if (typeof products[k] === 'number') var v = products[k];
else if (typeof products[k] === 'string') var v = "\'" + products[k]+ "\'";
else if (typeof products[k] === 'boolean') var v = products[k];
else continue;
myquery = myquery + "`" + k + "`,";
midquery = midquery + v + ",";
}
myquery = myquery.slice(0,-1);
midquery = midquery.slice(0, -1);

print(myquery + midquery + ")");

connection.connect();
connection.query(myquery, function (err, rows, fields) {
if (!err) console.log(rows);
else console.log(err);
});
connection.end();
}
});

我已经尝试了带刻度线和不带刻度线的版本,但都不起作用。

可能的原因是

  • 查询太长。也许超出了一些内部字符限制?

  • 不支持的字符。我很确定我那里有很多克罗地亚的 ćčćš。我如何支持它?

  • 不正确的 ' "转义(尽管对我来说似乎没问题)。

  • 我将“代码”作为表格列。我已经检查过,它不是 mysql 中的保留关键字,但它在 MySQL Workbench 中是蓝色的,所以它可能以某种方式破坏了东西。

我得到的是:

{ [Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the
manual that corresponds to your MySQL server version for the right syntax to
use near '' at line 1]
code: 'ER_PARSE_ERROR',
errno: 1064,
sqlState: '42000',
index: 0 }

最佳答案

每当您在查询中使用数据库实体(如表名或数据库变量)时,您都应该尝试使用刻度。就您的查询而言,只有 myquery 作为您的数据库语句进入函数并且它不包含整个查询。结果,由于您不完整的完整查询和其中的语法不正确(因为它已经不完整),您会收到错误消息。由于您使用的串联,您的打印语句将正确打印。如果您能够将串联的查询字符串保存在变量中,例如:

    var new_query=myquery + midquery + ")";

然后将其用作

    connection.query(new_query, function (err, rows, fields) {
if (!err) console.log(rows);
else console.log(err);
});

我认为您的查询应该有效。谢谢...!

关于mysql - VALID 查询上的 Nodejs MySQL ER_PARSE_ERROR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29986201/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com