【发布时间】:2019-12-02 18:05:17
【问题描述】:
我使用mysql2 包对 MySQL 服务器运行查询
这里是连接设置
getConnection: function () {
let host = "hostname.com";
let database = "database_name";
let username = "username";
let password = "pwd";
let con = mysql.createConnection({
host: host,
user: username,
password: password,
database: database,
connectTimeout: 15000
});
return con;
},
它适用于所有查询,除了 INSERT 带有 26 个参数的查询:
recordCreate: function (con, param1, param2,
param3, param4, param5, param6, param7,
param8, param9, param10, param11, param12,
param13, param14, param15, param16, param17,
param18, param19, param20, param21, param22,
param23, param24, param25, param26, callback) {
try {
con.connect(function (err, result) {
try {
if (err) throw err;
con.query(“INSERT INTO tbldata (param1,
param2, param3, param4, param5, param6,
param7, param8, param9, param10, param11,
param12, param13, param14, param15, param16,
param17, param18, param19, param20, param21,
param22, param23, param24, param25, param26
) VALUES
(?, ?, ?, ?, ?,
?, ?, ?, ?, ?,
?, ?, ?, ?, ?,
?, ?, ?, ?, ?,
?, ?, ?, ?, ?,
?)”,[param1, param2, param3, param4, param5,
param6, param7, param8, param9, param10,
param11, param12, param13, param14, param15,
param16, param17, param18, param19, param20,
param21, param22, param23, param24, param25,
param26]
, function (err) {
try {
if (err) throw err;
callback(true);
} catch (err) {
callback(err);
} finally {
con.close();
}
});
我不断收到以下错误消息:
C:\MyProjects\TMS\node_modules\mysql2\lib\commands\command.js:30 this.onResult(err); ^
TypeError: this.onResult 不是函数 在 Query.execute (C:\MyProjects\TMS\node_modules\mysql2\lib\commands\command.js:30:14) 在 Connection.handlePacket (C:\MyProjects\TMS\node_modules\mysql2\lib\connection.js:449:32) 在 PacketParser.Connection.packetParser.p [as onPacket] (C:\MyProjects\TMS\node_modules\mysql2\lib\connection.js:72:12) 在 PacketParser.executeStart (C:\MyProjects\TMS\node_modules\mysql2\lib\packet_parser.js:76:16) 在 Socket.Connection.stream.on.data (C:\MyProjects\TMS\node_modules\mysql2\lib\connection.js:79:25) 在 Socket.emit (events.js:188:13) 在 addChunk (_stream_readable.js:288:12) 在 readableAddChunk (_stream_readable.js:269:11) 在 Socket.Readable.push (_stream_readable.js:224:10) 在 TCP.onStreamRead [as onread] (internal/stream_base_commons.js:145:17)
进程以退出代码 1 结束
重要的是要说明这些数据元素(参数)非常小。我们在这里讨论短 10 字符的字符串和数字
例如
INSERT INTO tbldata (param1, param2, param3, param4, param5,
param6, param7, param8, param9, param10,
param11, param12, param13, param14, param15,
param16, param17, param18, param19, param20,
param21, param22, param23, param24, param25,
param26) VALUES
(51, 'Test 51', '', '2019-12-01', '2019-12-01',
1, 1, 1, 3, 3, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0,
0, 1, 1, 1, 3, 3);
我尝试在 MySQL 服务器上运行示例查询,它运行良好
【问题讨论】:
-
您是否尝试将查询范围缩小到更少的参数?哪里开始出错了?
-
对我来说毫无意义
TypeError: this.onResult is not a function at Query.execute但 surley 它应该对节点人有意义 -
@NicoHaase,是的,但可能还不够。我删除了两个参数。没有成功。我可能会继续缩小范围。老实说,我认为这是
mysql2或MySQL服务器变量的众所周知的问题 -
这个问题看起来更像是 node.js 语法问题,而不是 SQL 问题。
-
@IgorM 如果您知道答案,请写下答案。干杯。