ubuntu c语言操作mysql插入报错?

一段简单的代码:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<mysql/mysql.h>

#define HOST "localhost"
#define USRNAME "root"
#define PASSWORD "1234567"
#define DATABASE "staff_info_sys"

int main(){
    int num,cnt;
    MYSQL mysql;
    MYSQL_RES *res;
    MYSQL_ROW row;
    char query[100];
    int i=0;
    mysql_init(&mysql);
    if(mysql_real_connect(&mysql,HOST,USRNAME,PASSWORD,DATABASE,0,NULL,0)==NULL){
        printf("sql connect error %d: %s\n",mysql_errno(&mysql),mysql_error(&mysql));
        exit(1);
    }
    printf("sql connect success, id %ld\n",mysql.thread_id);

    while(1){
        i++;
        printf("plz in sql query (%d):",i);
        gets(query);
        if(mysql_real_query(&mysql,query,strlen(query))!=0){
            printf("query error %d: %s\n",mysql_errno(&mysql),mysql_error(&mysql));
            exit(1);
        }
        if((res=mysql_use_result(&mysql))==NULL){
            printf("use result error %d: %s\n",mysql_errno(&mysql),mysql_error(&mysql));
            exit(1);
        }
        for(cnt=0;cnt<=mysql_field_count(&mysql);cnt++){
            if((row=mysql_fetch_row(res))==NULL)
                break;
            for(num=0;num<=mysql_num_fields(res);num++)
                printf("%s",row[num]);
            printf("\n");
        }
        mysql_free_result(res);
        printf("mysql query success!\n");

    }
    mysql_close(&mysql);
    return 0;
}

每当我在外部插入数据时,都会报错use result error 0: 。有点不太懂,这说明我没错,但是肯定res==NULL,而我去mysql中查看时都发现插入成功,想请教一下大家这是怎么回事,要怎么该,谢谢。

阅读 1.8k
1 个回答

使用mysql_use_result()时,必须执行mysql_fetch_row(),直至返回NULL值,否则,未获取的行将作为下一个检索的一部分返回。
https://baike.baidu.com/item/...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题