为什么受影响的行在更新/删除成功时返回 0?

2023-12-12

我有以下声明:

INSERT INTO infotbl(name, phone) VALUES('Alex', '9999999');

并更新它:

UPDATE infotbl SET name = 'Alex Johnes', phone = '999 34356063' WHERE id = 1;

然后删除:

DELETE FROM infotbl WHERE id = 1;

我已经成功插入,当我更新和删除行时,MySQL 中的行已发生更改。但我在 Node 中的代码返回受影响的行 = 0。为什么?我在 Node 中有一个更新和删除的函数:

function deleteCustomer (id, callback) {
        db.connection.query("DELETE FROM infotbl WHERE id=?", id, (err, result) => {
            if (err) throw err;
            if (result.affectedRows > 0)
                callback(true);
            else
                callback(false);
        });
    };

和更新功能:

function updateCustomer(id, name, phone, callback) {
    db.connection.query("UPDATE infotbl SET name = ?, phone = ? WHERE id = ?;", [name, phone, id], (err, result) => {
        if (err) throw err;
                if (result.affectedRows > 0)
                    callback(true);
                else
                    callback(false);
});
}

当数据库执行成功时,为什么节点返回0受影响的行?


最可能的解释是没有行满足 UPDATE 和 DELETE 语句中的条件。也就是说,没有行id值等于1.

如果条件与一行或多行匹配,则 UPDATE 可能会影响零行,但应用于该行的更改会导致“无更改”...也就是说,正在修改的列已经分配了值。

成功执行但影响零行的 UPDATE 或 DELETE 仍被视为成功。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么受影响的行在更新/删除成功时返回 0? 的相关文章

随机推荐

  • ie6 之前在 GWT 2.6.0/GXT2.5.1 中未定义错误

    使用 GWT 2 6 0 和 GXT 2 5 1 编译代码时出现以下错误 Loading inherited module com sencha gxt ui GXT L Loading inherited module com sench
  • 有没有办法在使用 vscode 在 python 中调试时更改代码?

    我知道某些语言 例如 NET 我在 Visual Studio 上有一些这样做的经验 有一种方法可以在断点上停止执行并更改下一行代码 更改变量值甚至更改执行行而无需重新加载应用程序 这非常有用 因为您可以在执行时编写代码 特别是对于非线性代
  • 将参数传递给 OPENQUERY

    为什么以下查询不起作用 它给了我错误 附近的语法不正确 SELECT INTO tmpTable FROM OPENQUERY 127 0 0 1 EXEC DB dbo SP inventory StoreId StartDate End
  • JSF 2.2 HTML5 传递属性

    我正在尝试使用 JSF 2 2 创新 html5 传递属性功能 适用于 m09 版本的组件标签上的名称空间属性
  • 从 python 脚本更改目录:如何不打开新的 shell [重复]

    这个问题在这里已经有答案了 我有以下代码 import os unixshell os environ SHELL dir home user somewhere if os path isdir dir os chdir dir os s
  • Android:添加GMT时区后显示时间

    我正在开发一个应用程序 我想在其中显示通知时间 我可以显示通知时间 但无法在其中添加时区 我当前的位置是巴基斯坦 我想添加 GMT 5 00 我的代码已附上 String currentDateTimeString DateFormat g
  • 葡萄牙/西班牙口音与 jsPDF

    如何在使用 jsPDF 生成的 PDF 文件中获取特殊字符 文本通过 AJAX 动态加载 一些可能的字符是 and 到目前为止 我还不知道如何做到这一点 你必须下载最新版本的 jsPDF 会有一个名为 jspdf plugin standa
  • 无法从 JSP 访问 WEB-INF 下定义的 CSS 文件

    我使用 Maven 创建了 Struts2 应用程序 在此应用程序中 我创建了两个命名空间 第一个是tc第二个是cmpui 我正在尝试从 JSP 页面访问 css文件 但它给了我 404 错误 JSP页面的位置是 webapp tc lay
  • 从 golang 中的字节数组中解压缩 gzip

    我有一堆来自一些网络请求的文件 其中一些是 gzip 压缩的 我需要解压它们并将它们打印为字符串 这是我第一次尝试使用 golang 我尝试了一些在网上找到的示例 但无法正常工作 这是我尝试的最后一个测试 package main impo
  • 如何在 Spotify 应用程序 API 中创建类似“轮播”的小部件?

    Is it possible using the spotify apps API to create one of these widgets filled with my data of choice 是的 通过使用 import sc
  • WCF - 无需 app.config 即可使用

    我有一个调用 WCF 服务的 SharePoint 工作流 只要工作流在 IIS 下运行并且不转移到计时器服务 这种方法就可以正常工作 问题是计时器服务无法访问从计时器服务上下文设置 WCF 连接所需的 web config 设置 Coul
  • 有什么办法可以直接进入Android中的“启用USB调试”页面吗?

    是否有直接进入 启用 USB 调试 切换的 Intent 或请求启用它的方法 情况说明 我们有一个应用程序 用于同时在多部手机上进行测试 并且它们都启用了开发人员模式 不过全部刷新后需要开启usb调试 我们知道如何通过 ADB 执行此操作
  • 使用 keras 可以在训练过程中实时获取输出层吗?

    我尝试在训练期间获得输出层 我正在尝试对模型进行实时 3D 可视化并使其具有交互性 我正在使用谷歌colab与tensorflow 2 0和python 3 这是我的代码 Imports from future import absolut
  • 如何使用 Social-auth-app-django 刷新令牌?

    I use Python 社交身份验证 Django登录我的用户 我的后端是微软 所以我可以使用微软图谱但我认为这不相关 Python Social Auth 处理身份验证 但现在我想调用 API 为此 我需要一个有效的访问令牌 继用例我可
  • 使用 p2 查询语言在 p2 存储库中查找单元的命令行

    p2 有一个查询语言允许对 p2 存储库的内容运行查询 然而 所有的例子文档假设查询语言是在 Java 内部使用的 例如 IQuery
  • 覆盖静态字段

    我正在为我的游戏编写 C 游戏引擎 但遇到了问题 我需要为每种不同类型的块执行 XNA Rectangle drawRectangle 块存储在块列表中 因此必须重写该属性 以便可以通过绘制访问而无需进行大量投射 我尝试了很多方法 但没有一
  • 当 fastcgi 后端偶尔使用内容编码进行 gzip 服务时,如何禁用 Nginx 双 gzip 编码?

    如果后端已经设置了 content encoding 标头 是否有任何聪明的方法可以欺骗 nginx 停止 gzip Nginx 配置为对 php fastcgi 后端的输出进行 gzip 压缩 这在 99 的情况下都很有效 除了极少数情况
  • Xamarin Forms:隐藏 ListView 中的滚动条

    有没有一种简单的方法可以隐藏 ListView 中的滚动条 但仍使其可滚动 您可以为每个平台制作自定义 ListView 渲染器 http developer xamarin com guides cross platform xamari
  • 如何识别弹出窗口之外的点击?

    我有一个弹出窗口 在单击内部时消失 但我的目的是使其在单击外部时消失 目前 弹出窗口工作正常 但每当我在窗口内单击时它就会消失 当我在窗口外单击时 它会保留下来 我如何让它以相反的方式工作 Code as function deselect
  • 为什么受影响的行在更新/删除成功时返回 0?

    我有以下声明 INSERT INTO infotbl name phone VALUES Alex 9999999 并更新它 UPDATE infotbl SET name Alex Johnes phone 999 34356063 WH