一段简单的代码:
#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中查看时都发现插入成功,想请教一下大家这是怎么回事,要怎么该,谢谢。
使用mysql_use_result()时,必须执行mysql_fetch_row(),直至返回NULL值,否则,未获取的行将作为下一个检索的一部分返回。
https://baike.baidu.com/item/...