jhyjhy12138 2019-08-28 11:11 采纳率: 0%
浏览 416

koa 一次执行两条sql语句为什么会出问题?

使用koa 搭建后台时,有个点赞需求需要两条sql语句执行,我在数据库里执行两条语句都能正确返回结果,
但是在Service层里包装语句后去执行query()函数,后台给我返回错误:球球大家

  • 这是Service层代码 ``` const query = require('../allServices');

module.exports = async(_arr) => {
//console.log(_arr) [2,2,2,'2019-08-28 10:37:23.352','评论']
let _sql = 'update comments set comment_like_count = comment_like_count +'+ 1 +' where id = ?;'+
'insert into likes (theme_id,user_id,like_time,blogOrCom) values (?,?,?,?);';

return query(_sql, _arr);

}

* 这是query函数

const mysql = require('mysql');
const config = require('../config/config');

let pool = mysql.createPool({
host: config.database.HOST,
user: config.database.USERNAME,
password: config.database.PASSWORD,
database: config.database.DATABASE
});

let query = function(sql,values){
return new Promise((resolve, reject) => {
pool.getConnection(function(err, connection) {
if(err) {
reject(err);
}else {
connection.query(sql, values, (err, rows, fields) => {
if(err) {
reject(err);
}else {
resolve(rows);
}
connection.release();//结束会话
})
}
})
})
}

module.exports = query;

* 这是报错截图
![图片说明](https://img-ask.csdn.net/upload/201908/28/1566961717_980431.jpg)
  • 写回答

1条回答 默认 最新

  • 憧憬blog 2023-06-26 17:38
    关注

    出现这个问题的原因是因为mysql不支持执行多条语句。在执行多条语句时,会抛出这个错误。在执行query函数时,会对sql语句进行语法验证,因此无法直接执行包含多条语句的sql语句。你可以考虑在Service层分别执行两条sql语句,或者使用一些第三方的库,例如mysql2或sequelize,它们可以支持执行多条语句。

    评论

报告相同问题?

悬赏问题

  • ¥15 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!