如何知道表中是否有任何记录使用update查询更新。
我正在使用Mysql C API..我尝试在触发UPDATE查询后存储mysql结果,但如果成功升级,结果总是返回NULL。任何帮助都是最好的。
谢谢
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;
}发布于 2019-11-11 15:43:09
在做了将近1天的研发后,我发现了mysql_affected_rows(*mysql)函数,它将返回更新查询的更新行数。
发布于 2019-11-08 14:28:02
调用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。
https://stackoverflow.com/questions/58761396
复制相似问题