javascript - MySql 错误 "could not update record"错误号 0 - 当没有更改记录时

标签 javascript php mysql mysqli

当我使用 MySQLi 更新 MySQL 数据库中的字段时,我会检查受影响的行数以查看查询是否成功。如果该字段的值实际上没有改变,那么我会收到一条错误消息。例如,如果您尝试将字段“chips”的值更改为“utz”,而该值已经是“utz”,我会收到以下错误:

Could not update record: (0)

这是因为受影响的行数为 0,既然如此为什么要更改已经是正确值的内容。是否有避免此错误的“良好实践”方法?

我看到人们试图通过更新数据库中的“current_time_stamp”值来解决这个问题,以便字段始终被更新。但这似乎不是处理这种情况的好方法。

在我的网站上,我尝试检查该值是否已更改。我使用 javascript 的 onChange 来调用函数,我设置了一个变量来反射(reflect)所做的更改,稍后我会检查数据库是否应该更新。但这并不总是会带来实际的变化。有时,即使没有进行任何更改,该函数也会被调用。有什么建议吗?

这是我在检查受影响的行数时使用的代码:

    if ($databaseObject->affected_rows)
    {
        //echo "Success!<br>";
    }
    else 
    {
        echo "Could not update record: (" . $databaseObject->errno . ") " . $databaseObject->error . "<br>";
    }

最佳答案

当查询未正确执行时,您将得到-1。那么为什么不呢:

if ($databaseObject->affected_rows != -1)
    {
        //echo "Success!<br>";
    }
    else 
    {
        echo "Could not update record: (" . $databaseObject->errno . ") " . $databaseObject->error . "<br>";
    }

关于javascript - MySql 错误 "could not update record"错误号 0 - 当没有更改记录时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21215395/

相关文章:

javascript - 脚本不遍历表格单元格

javascript - 以 "show_only_matches"为真进行搜索后的 jstree 键盘导航

php - Javascript 确认删除

php - 检查您的代码是否在 64 位 PHP 上运行

mysql - 从 Rails 范围获取第二行

mysql - SQL 方关系模型 - 子类和父类(super class)之间的一致性

javascript - 使用 Webpack 2 和 extract-text-webpack-plugin

javascript - 获取 Gridview 选中项目的列表

javascript - 使用 php 和 jquery 的重音问题

mysql - phpmyadmin 导出数据库给出名称为 sql 的 html 文档错误