Обновление таблицы MySQL с помощью клиентского ввода на языке Си - PullRequest
0 голосов
/ 06 июня 2011

Я создал программу на C, которая обновляет имя пользователя с помощью клиентского ввода, но я не смог обновить имя пользователя, может кто-нибудь помочь мне решить эту проблему.

Вот мой код

#include<stdio.h>
#include<mysql.h>

#include<string.h>

#include<stdlib.h>

main()

{

    int i,num_fields;

    int len,choice;

    char name[50],search[50],ename[50];

    char query[200];
    MYSQL *conn;
    MYSQL_RES *result;
    MYSQL_ROW *row;
    MYSQL_FIELD *field;
    int ret;
    char stat[50] = "INSERT INTO Users VALUES('%s')";
    char updatename[200] = "UPDATE Users SET name='%s' WHERE name='%s'";
    conn = mysql_init(NULL);
    ret=mysql_real_connect(conn,"localhost","root","bisptop","testdb",0,NULL,0);
    scanf("%d",&choice);
    switch(choice)
    case 1:
    {
      insert code
    }
    case 2:
    {
      display code
    }
    case 3:
            {
                    printf("edit name");
                    scanf("%s",search);
                    mysql_query(conn,"SELECT * FROM Users");
                    result=mysql_store_result(conn);
                    num_fields=mysql_num_fields(result);
                    while((row=mysql_fetch_row(result)))
                    {
                            for(i=0;i<num_fields;i++)
                            {
                                    if(strcmp(search,row[i])==0)
                                    {
                                            //printf("%s",row[i]);
                                            printf("Enter new name\n");
                                            scanf("%s",ename);
                                            len=snprintf(query,sizeof(updatename)+strlen(ename),updatename,ename);
                                            //printf("%d",len);
                                            printf("%s\n",query);
                                            mysql_query(conn,query);
                                            mysql_close(conn);
                                    }
                            }
                    }
                    break;
            }
    }

}

1 Ответ

0 голосов
/ 06 июня 2011
len=snprintf(query,sizeof(updatename)+strlen(ename),updatename,ename);

Если вы хотите обновить имя, не должна ли эта строка содержать как старое, так и новое имя?Как еще мы узнаем, какое имя обновлять?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...