首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL in NodeJS不适用于INSERT INTO中的多个语句

问MySQL in NodeJS不适用于INSERT INTO中的多个语句
EN

Stack Overflow用户
提问于 2016-05-02 01:08:34
回答 2查看 320关注 0票数 0

我要遵守密码。

代码语言:javascript
复制
let addressQuery = 'INSERT INTO addresses(postalCode, street, city, state) VALUES(?, ?, ?, ?);';
let addressValue = [client.postalCode.replace(/\-/gi, ''), client.address, client.city, client.state];

let clientQuery = `INSERT INTO client(name, email, password, postalCode, addressNumber, cellPhone) VALUES(?, ?, ?, ?, ?, ?);`;

let clientValues = [client.name, client.email, client.password, client.postalCode.replace(/\-/gi, ''), client.number, client.cellPhone ];

let addressSQL = mysql.format(addressQuery, addressValue);
let clientSQL = mysql.format(clientQuery, clientValues);

connection.query(`${addressSQL} ${clientSQL}`, (err, result) => {});

在addressSQL中生成我的查询

代码语言:javascript
复制
INSERT INTO addresses(postalCode, street, city, state) VALUES('04545041', 'Rua Santa Justina', 'São Paulo', 'SP');`

对于clientSQL

代码语言:javascript
复制
INSERT INTO client(name, email, password, postalCode, addressNumber, cellPhone) VALUES('Keila', 'keila@dressandgo.com.br', 'Senha123Forte', '04545041', 352, 1130454006);

当我手动运行查询时,数据会插入到表中,但是当我在节点中使用mysql模块时,只会插入客户端数据,而在addresses表中不会插入任何内容。没有来自模块的错误消息,只有数据没有插入。两个表在postalCode字段中都有一个关系。有人知道为什么数据没有插入addresses吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-02 01:14:58

您可能必须分别执行每个查询。所以试试这个:

代码语言:javascript
复制
connection.query(`${addressSQL}`, (err, result) => {
   connection.query(`${clientSQL}`, (err, result_) => {
     // If no errors, two statements executed
   });
});
票数 1
EN

Stack Overflow用户

发布于 2016-05-03 20:40:53

请阅读节点-mysql文档。

分段连接选项 multipleStatements:允许每个查询多个mysql语句。小心这一点,它可能会增加SQL注入攻击的范围。(失责:假)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36973751

复制
相关文章

相似问题

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