我的目的是在用户插入不在表格中的值时警告用户。
表:
For_Sconti | Cat_Sconti | Sconto
7148 A1 451.00
有人巧妙地建议使用mysql_affected_rows()函数。
因为它可以在发布更新语句时使用,所以我试图理解它是如何工作的但无济于事。
这是我使用的代码:
memset(query, 0, 200);
strcat(query, "UPDATE Sconti SET ");
strcat(query, "Sconto = '");
strcat(query, nuovo_sconto);
strcat(query, "' WHERE For_Sconti ='");
strcat(query, For_Sconti);
strcat(query, "' AND Cat_Sconti='");
strcat(query, Cat_Sconti);
strcat(query, "';");
if ( (mysql_affected_rows()) == 0 )
printf("Warning you tried to modify non existent record\n" );
这是我收到的错误消息:
2.0.c: In function ‘modifica_sconto’:
2.0.c:330: error: too few arguments to function ‘mysql_affected_rows’
有人可以帮忙摆脱困境吗?
任何帮助都将受到高度赞赏。
答案 0 :(得分:1)
您已生成更新语句,但您没有执行它。您需要使用mysql_query()
您需要将mysql连接句柄结构(MYSQL *)作为参数传递给mysql_affected_rows()
char *stmt = "UPDATE products SET cost=cost*1.25
WHERE group=10";
mysql_query(&mysql,stmt);
printf("%ld products updated", (long) mysql_affected_rows(&mysql));
参考文献: