Проверка, находится ли значение в таблице ..help..please (Mysql + C) - PullRequest
0 голосов
/ 19 сентября 2011

Моя цель - предупреждать пользователя всякий раз, когда он / она вставляет значение, которого нет в таблице.

Таблица:

For_Sconti  |    Cat_Sconti    |  Sconto 

  7148               A1          451.00

Кто-то умно предложил использовать функцию mysql_affered_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’

Может ли кто-нибудь помочь избавиться от неприятностей?

Любая помощь будет высоко оценена.

1 Ответ

1 голос
/ 19 сентября 2011
  1. Вы создали оператор обновления, но не выполняете его.Вам необходимо выполнить оператор обновления с помощью mysql_query ()

  2. Вам необходимо передать структуру дескриптора подключения mysql (MYSQL *) в качестве параметра mysql_affered_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));

Ссылки:

  1. http://dev.mysql.com/doc/refman/5.0/en/mysql-affected-rows.html
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...