Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查值是否不在表中..帮助..请(Mysql+;C)_Mysql_C - Fatal编程技术网

检查值是否不在表中..帮助..请(Mysql+;C)

检查值是否不在表中..帮助..请(Mysql+;C),mysql,c,Mysql,C,我的目的是在用户插入不在表中的值时发出警告 表: For_Sconti | Cat_Sconti | Sconto 7148 A1 451.00 有人巧妙地建议使用mysql\u impacted\u rows()函数 因为它可以在发出update语句时使用,所以我试图理解它是如何工作的,但没有用 以下是我使用的代码: memset(query, 0, 200); strcat(query, "UPD

我的目的是在用户插入不在表中的值时发出警告

表:

For_Sconti  |    Cat_Sconti    |  Sconto 

  7148               A1          451.00
有人巧妙地建议使用mysql\u impacted\u rows()函数

因为它可以在发出update语句时使用,所以我试图理解它是如何工作的,但没有用

以下是我使用的代码:

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’
有人能帮你摆脱困境吗

我们将非常感谢您的帮助

  • 您已经生成了update语句,但没有执行它。您需要使用mysql\u query()执行update语句

  • 您需要将mysql连接句柄结构(mysql*)作为参数传递给mysql\u受影响的\u行()

    char*stmt=“更新产品集成本=成本*1.25
    其中组=10”;
    mysql\u查询(&mysql,stmt);
    printf(“%ld个产品已更新”,(长)mysql\u受影响的行(&mysql))

  • 参考资料:


  • 维拉,看来你并不是在执行这个陈述,是吗?我看到的只是一堆字符串连接。这实际上是一个更新语句…当然,上面几行我得到了每个记录的值..我错了吗?我解决了问题…在查询之后,我使用result=mysql\u store\u result(conn);num_rows=mysql_num_rows(结果);如果num_rows大于0,则用户的输入在表中,否则警告将阻止任何其他操作。。