谢谢你看这个!我试图用一个查询更新mysql中的一些记录;但是,我使用一个有承诺的类来创建一组同步查询,我似乎无法让它工作。以下是我目前的情况:
req.body是一个包含两个键/值对的对象数组。。。
应用程序编程接口:
router.post('/verified', (req, res) => {
let database = new Database(dbOptions);
let verifiedItemsArray = [];
let sqlQueryArray = [];
let updateQuery = 'UPDATE `raw_unverified` SET `funding_source` = ? WHERE `ritm_number` = ?';
let verifiedItemArray = [req.body[0].funding_source, req.body[0].ritm_number];
database.beginTransaction([updateQuery], verifiedItemArray)
.then(response => console.log(response))
.catch(error => console.log(error));
res.send('Update Successful');
});
数据库类:
class Database {
constructor(config) {
this.connection = mysql.createConnection(config);
}
query(sqlQuery, sqlArgs) {
console.log(sqlQuery);
return new Promise( (resolve, reject) => {
this.connection.query(sqlQuery, ((sqlArgs) ? [sqlArgs] : null), (error, results) => {
if (error) return reject(error);
resolve(results);
});
});
}
beginTransaction(sqlQueries, sqlArgs) {
return new Promise( (resolve, reject) => {
let allResults = [];
this.connection.beginTransaction( (error) => {
if (error) return reject(error);
for (let i = 0; i < sqlQueries.length; i++) {
this.query(sqlQueries[i], ((sqlArgs) ? sqlArgs[i] : null))
.then((results) => {
allResults.push(results);
})
.catch((error) => {
throw error;
});
}
this.connection.commit( (error) => {
if (error) return reject(error);
resolve(allResults);
});
});
});
}
}
module.exports = Database;
我得到的错误是:
更新 raw_unverified
套 funding_source
= ? 哪里 ritm_number
= ?
(node:8216)UnhandledPromisejectionWarning:错误:er\u parse\u错误:您的sql语法有错误;请查看与mysql服务器版本对应的手册,以获取在第1行的“?”附近使用的正确语法
任何帮助将不胜感激,任何我可以做得更好的,请随时指出!
提前谢谢大家!
1条答案
按热度按时间c3frrgcw1#
在这条线上
您正在按索引向查询传递参数—这意味着您需要更改
到