【问题标题】:How to get mysql to throw an error on update for no rows matched?如何让mysql在更新时抛出错误,因为没有匹配的行?
【发布时间】:2016-05-04 00:10:26
【问题描述】:

我想知道 UPDATE 查询何时报告 0 行匹配。我正在使用libmysql

这是我正在使用的代码:

char query[300] = {0};
snprintf(query, 300, "UPDATE `my_table` SET name='%s' WHERE id=%d",
         name, id);

if (mysql_query(db, query)) {
    printf("Error!\n");
}

基本上我需要知道的是id 是否匹配。我知道我可以通过选择来检查,但还有其他方法吗?

【问题讨论】:

  • mysql 的大多数实现都可以提供“affected_rows”。我不知道 libmysql,但您应该通读文档并查看是否在某处提到了受影响的行。

标签: mysql c libmysql


【解决方案1】:

检查mysql_affected_rows。这将返回最后一个查询修改的行数。

但是,它可能只返回实际修改的行。如果要返回匹配的行,则必须在mysql_real_connect 中指定CLIENT_FOUND_ROWS。详情请查看同一页面。

【讨论】:

  • 谢谢! mysql_affected_rows 正是我所需要的。
猜你喜欢
  • 2015-03-27
  • 2021-07-08
  • 1970-01-01
  • 1970-01-01
  • 2019-02-16
  • 2015-06-30
  • 1970-01-01
  • 1970-01-01
  • 2021-05-12
相关资源
最近更新 更多