小编给大家分享一下mysql+c语言+API如何访问数据库,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

#include<winsock2.h>#include"CMySQL.h"#include"stdio.h"#defineMYSQL_PORT3306voidprocess_result_set(MYSQLmysql,MYSQL_RES*result);voidexit(MYSQLmydata,char*ep);intmain(intargc,char*argv[]){MYSQLmydata;Database_Paramp;charqueryName[600];MYSQL_RES*result=NULL;intstatus=0;//初始化strcpy(p.host,"127.0.0.1");strcpy(p.user,"root");strcpy(p.password,"root");strcpy(p.db,"im");p.port=MYSQL_PORT;//初始化数据结构if(mysql_init(&mydata)==NULL){printf("initmysqldatastauctfail\n");system("pause");return-1;}//连接if(argc==1){if(NULL==_real_connect(&mydata,p.host,p.user,p.password,p.db,p.port,NULL,CLIENT_MULTI_STATEMENTS)){printf("connectdatabasefail,%s\n",mysql_error(&mydata));system("pause");return-1;}}else{printf("runparametererror\n");system("pause");return-1;}//首先设置字符集strcpy(queryName,"setnamesgbkd");if(mysql_query(&mydata,"setnamesgbk")!=0){exit(mydata,"setnamesfail");return-1;}//查询数据(支持单个字段和多个字段,输出排版)strcpy(queryName,"showdatabases");if(mysql_query(&mydata,queryName)!=0){exit(mydata,"executesqlsyntaxfail");return-1;}//取得查询结果result=mysql_store_result(&mydata);process_result_set(mydata,result);//处理多条插入语句,在mysql_real_connect(......)函数里的最后一个参数更改为:CLIENT_MULTI_STATEMENTSstrcpy(queryName,"insertintofangl.admin(username,password)values('fangl1','fangl1'),('fangl2','fangl2'),('fangl3','fangl3');\insertintofangl.admin(username,password)values('fl1','fl1'),('fl2','fl2'),('fl3','fl3');\insertintofangl.admin(username,password)values('fal1','fal1'),('fal2','fal2'),('fal3','fal3');\select*fromfangl.admin");if(mysql_query(&mydata,queryName)!=0){exit(mydata,"insertvaluesfail");return-1;}do{/*didcurrentstatementreturndata?*/result=mysql_store_result(&mydata);if(result){/*yes;processrowsandfreetheresultset*/process_result_set(mydata,result);mysql_free_result(result);}else/*noresultsetorerror*/{if(mysql_field_count(&mydata)==0){printf("%lldrowsaffected\n",mysql_affected_rows(&mydata));}else/*someerroroccurred*/{printf("Couldnotretrieveresultset\n");break;}}/*moreresults?-1=no,>0=error,0=yes(keeplooping)*/if((status=mysql_next_result(&mydata))>0)printf("Couldnotexecutestatement\n");}while(status==0);//删除表中的数据strcpy(queryName,"deletefromfangl.adminwhereusername='fl1'");if(mysql_query(&mydata,queryName)!=0){exit(mydata,"executesqlsyntaxfail");return-1;}//查询数据(支持单个字段和多个字段,输出排版)strcpy(queryName,"select*fromfangl.admin");if(mysql_query(&mydata,queryName)!=0){return-1;}//取得查询结果result=mysql_store_result(&mydata);process_result_set(mydata,result);//释放结果if(result!=NULL){mysql_free_result(result);}mysql_close(&mydata);system("pause");return1;}voidprocess_result_set(MYSQLmydata,MYSQL_RES*result){introwcount=mysql_num_rows(result);//查询结果有多少行//取得各字段名MYSQL_FIELD*fields=NULL;for(inti=0;fields=mysql_fetch_field(result);i++){printf("%s",fields->name);}printf("\n");//依次读取各条记录MYSQL_ROWcurrow=NULL;while((currow=mysql_fetch_row(result))!=NULL){for(inti=0;i<mysql_num_fields(result);++i){printf("%s",currow[i]?currow[i]:"NULL");}printf("\n");}}voidexit(MYSQLmydata,char*ep){mysql_close(&mydata);printf("%s,%s\n",ep,mysql_error(&mydata));system("pause");}

以上是“mysql+c语言+API如何访问数据库”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!