php - 如何知道MySQL更新命令是否找到了记录?

标签 php mysql database mysqli

有时我需要知道MySQL是否找到了该记录。我并不是想知道是否有受影响的行,只是想知道。

    $db = database_system::connect();
    $query = "UPDATE member SET username=?,password=? WHERE id=?";
    $stmt = $db->prepare($query);
    $stmt->bind_param("ssi",$this->username,$this->password,$this->id);
    $stmt->execute();
    $stmt->store_result();
    if(!$stmt->affected_rows) throw new Exception("something about");
    $stmt->close();

例如,如果没有受影响的记录,上面的 php 代码将抛出异常,但我想在没有这样的用户(具有该 ID)时抛出异常。

最佳答案

您需要在单独的查询中检查它。如果详细信息也未更改,则受影响的行数也可能返回零。 (即使用与之前相同的用户名和密码更新有效的用户 ID)

因此,最好首先为用户运行单独的选择。

关于php - 如何知道MySQL更新命令是否找到了记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23049457/

相关文章:

php - Bootstrap 列根据移动 View 上的标题进行总结

php - 将 mysql 的 php 代码转换为 sqlite 时出现问题

sql - 组织在线类(class)数据库

mysql - 帮助我的 JAVA 应用程序进行 SQL 查询

php - MySQL ST_AsGeoJSON 返回原始数据中没有的 float 字

php - 如何制作一个只有 1 个索引的数组到顶层?

PHP基本运算符

mysql - 如何写一个SQL查询来解决8皇后的问题?

database - 将数据从一个 Informix 数据库复制到另一个数据库的脚本

database - 在 codeigniter 中为我的模型更改数据库时遇到问题