首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Node JS MYSQL查询未运行,但未记录错误

问Node JS MYSQL查询未运行,但未记录错误
EN

Stack Overflow用户
提问于 2020-02-05 06:02:01
回答 1查看 35关注 0票数 0

我有以下代码,它应该更新服务表中第31行的url列:

代码语言:javascript
复制
connection.getConnection(function(err, connection) {

   if (err) {
      console.log(err);
   } 
   const query = "update services set ? where ?;";
   const params = [{ url: "www.test.com" }, { id: 31 }];

   connection.query(query, params, function(error, rows, fields) {
      if (error) {
         console.log("failed");
      }
      console.log("success");
   });

   console.log(mysql.format(query, params));

   connection.release();
});

当我运行它时,查询没有运行,数据库保持不变。只有以下内容会记录在控制台中:

代码语言:javascript
复制
update services set `url` = 'www.test.com' where `id` = 31;

这让我感到困惑,因为我希望“成功”或“失败”都会紧随其后。所以不会抛出错误。查询也可以直接在DB中运行(如果复制并粘贴到工作台中)。如果我将查询替换为以下内容:

代码语言:javascript
复制
   connection.query("select curdate();", function(error, rows, fields) {

然后我就得到了我在控制台中所期望的结果:

代码语言:javascript
复制
update services set `url` = 'www.test.com' where `id` = 31;
success

有人能解释一下这里出了什么问题吗?

EN

回答 1

Stack Overflow用户

发布于 2020-02-05 10:56:37

好的..。问题出在我的MYSQL DB上。我注意到,在等待了一分钟之后,抛出了一个错误:'ER_LOCK_WAIT_TIMEOUT',这让我开始查看数据库。运行“show open tables where in_use>0;”显示正在锁定的表。原因-以某种方式自动提交设置已更改。天知道我是怎么做到的--也许是不小心点击了我的数据库管理工具。将该设置恢复为true,一切都会再次正常工作。

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

https://stackoverflow.com/questions/60066176

复制
相关文章

相似问题

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