首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何了解使用Update query更新的记录?

如何了解使用Update query更新的记录?
EN

Stack Overflow用户
提问于 2019-11-08 14:18:01
回答 2查看 76关注 0票数 1

如何知道表中是否有任何记录使用update查询更新。

我正在使用Mysql C API..我尝试在触发UPDATE查询后存储mysql结果,但如果成功升级,结果总是返回NULL。任何帮助都是最好的。

谢谢

代码语言:javascript
复制
 int main(void)                                                                                       
{                                                                                                    
  MYSQL *conn;                                                                                       
  MYSQL_RES *res;
  MYSQL_ROW row;

  if ((conn = mysql_init(NULL)) == NULL)                                                             
  {                                                                                                  
    fprintf(stderr, "Could not init DB\n");                                                 
    return EXIT_FAILURE;                                                                             
  }                                                                                                  
  if (mysql_real_connect(conn, "localhost", "root", "password", "cpaas", 0, NULL, 0) == NULL)             
  {                                                                                                  
    fprintf(stderr, "DB Connection Error\n");                                                        
    return EXIT_FAILURE;                                                                             
  }                                                                                                  
  if (mysql_query(conn, "update calldirection set callid='Hello' where callid='He'") != 0)                   
  {                                                                                                  
    fprintf(stderr, "Query Failure\n");                                                              
    return EXIT_FAILURE;                                                                             
  }
  res = mysql_store_result(conn);

  if(res == NULL){
    printf("dssdg");
    return 1;
  }
  if ((row = mysql_num_rows(res)) <= 0)
        {
                printf("FFFFFFF");
        }


  mysql_close(conn);                                                                                 
  return EXIT_SUCCESS;                                                                               
}
EN

回答 2

Stack Overflow用户

发布于 2019-11-11 15:43:09

在做了将近1天的研发后,我发现了mysql_affected_rows(*mysql)函数,它将返回更新查询的更新行数。

票数 2
EN

Stack Overflow用户

发布于 2019-11-08 14:28:02

MySQL mysql-store-resul 中所述

调用mysql_query()或mysql_real_query()后,必须为每个成功生成结果集(SELECT、SHOW、DESCRIBE、EXPLAIN、CHECK TABLE等)的语句调用mysql_store_result()或mysql_use_result() 。在处理完结果集之后,还必须调用mysql_free_result()。

对于其他语句,不需要调用mysql_store_result()或mysql_use_result(),但是如果在所有情况下都调用mysql_store_result(),则不会造成任何危害或性能显著下降。您可以通过检查mysql_store_result()是否返回非零值来检测语句是否有结果集(稍后将对此进行更多介绍)

对于(SELECT, SHOW, DESCRIBE, EXPLAIN, CHECK TABLE)查询类型以外的查询,mysql_store_result将返回NULL

Update查询不是其中之一,因此mysql_store_result会为它返回NULL。

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

https://stackoverflow.com/questions/58761396

复制
相关文章

相似问题

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