mysql上将文本上数据批量导入数据库c语言实现(CAPI)_MySQL
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql上将文本上数据批量导入数据库c语言实现(CAPI)_MySQL,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3298字,纯文字阅读大概需要5分钟。
内容图文
其实原理很简单,想必大家应该都看了我写的那篇(一个代码学会c语言操作数据库)linux上通过c语言操作数据库实现基本的学生信息管理系统(增、删、查、改‘显示) http://blog.csdn.net/guoqianqian5812/article/details/41381645博文,那么大家肯定知道怎么完成插入一个学生信息的,只要大家知道那么下面批量将输入导入数据库就很好实现了,这个方法就是在通过fgets函数读取文件里的内容,每读取一行,然后用strtok函数将其分割开,获取有用的数据段传到C API函数哪里(insert函数),然后用sprintf函数将其格式化写入执行语句下面就和c语言操作数据库的“增”一样了。代码如下:
[plain] view plaincopyprint? #include#include #include #include MYSQL mysql; /******通过insert into命令将数据批量导入数据库******/ void insert(char *a,char *b,char *c) { int t,r; char query[400]; memset(query,0,400); sprintf(query,"insert into EnglishWord4(Words,Translate,Num) values('%s','%s','%s')",a,b,c);//插入哪个表 printf("正在执行:%s\n",query); t=mysql_real_query(&mysql,query,(unsigned int)strlen(query)); if(t) { printf("执行插入时出现异常: %s",mysql_error(&mysql)); } else { printf("添加成功\n"); } } int main() { FILE *fp; char buff[300]; fp=fopen("englishword4.txt","r");//打开不同的文件 if(fp==NULL) { printf("Fail to open\n"); exit(1); } MYSQL_RES *res; MYSQL_ROW row; mysql_init(&mysql); if (!mysql_real_connect(&mysql,"localhost", "root", NULL, "English",0,NULL,0)) { printf( "Error connecting to database: %s",mysql_error(&mysql)); } else { printf("Connected...\n"); } char *p; char a[20]; char b[200]; char c[10]; int length = 0; while(fgets(buff,300,fp)!=NULL) { if(buff[strlen(buff)-1]=='\n') { buff[strlen(buff)]='\0'; } strcpy(a,strtok(buff,"#")); int i=0; while((p=strtok(NULL,"#"))) { if(i==0) { //printf("跳过\n"); } if(i==1) { strcpy(b,p); } if(i==2) { strcpy(c,p); } ++i; } length = strlen(c); c[length-2]='\0'; insert(a,b,c); bzero(a,sizeof(a)); bzero(b,sizeof(b)); bzero(b,sizeof(c)); } mysql_close(&mysql); fclose(fp); return 0; }
附加一个操作的表大家可以试试,这是我的格式
[plain] view plaincopyprint? a#[ei]#art. 一;任一;每一#1 able#['eibl]#adj. 能#1 about#[?'baut]#prep. 关于#1 above#[?'b?v]#prep. 在...上面 #1 act#[ækt]#vt. 行动#1 add#[æd]#vi. 加;增加#1 afraid#[?'freid]#adj. 害怕的#1 after#['ɑ:ft?]#adv. 后来#1 again#[?'ɡen]#adv.再一次#1 against#[?'ɡenst]#prep. 反对#1 age#[eid?]#n. 年龄#1 ago#[?'ɡ?u]#adv. 以前#1 agree#[?'ɡri:]#vt. 同意;赞成#1 air#[ε?]#n. 空气#1 all#[?:l]#adj. 全部的 n. 全部#1 allow#[?'lau]#vt. 允许#1 also#['?:ls?u]#adv. 也#1 always#['?:lweiz]#adv. 总是;永远#1 am#[æm]#v. 是#1 among#[?'m??]#prep. 在…中间;在…之中#1 an#[æn]#art. 一(在元音字母前)#1 and#[ænd]#conj. 和#1 anger#['æ?ɡ?]#n. 怒;愤怒;忿怒#1 animal#['ænim?l]#n. 动物#1 answer#['ɑ:ns?]#vt. 回答#1 any#['eni]#adj. 任何的#1 appear#[?'pi?]#vi. 出现#1 apple#['æpl]#n. 苹果;家伙#1 are#[ɑ:]#v. 是(be的第二人称单复数现在式)#1 area#['ε?ri?]#n. 区域#1 arm#[ɑ:m]#n. 手臂#1 arrange#[?'reind?]#vt. 安排#1 arrive#[?'raiv]#vi. 到达#1 art#[ɑ:t]#n. 艺术#1 as#[æz]#conj. 因为#1 ask#[ɑ:sk]#vt. 问#1 at#[æt]#prep. 在#1 atom#['æt?m]#n. 原子#1
思想很简单
结果:
启动查找表格结果
建立被导入数据的表和显示内容
执行插入程序:
查看插入后的表的内容
内容总结
以上是互联网集市为您收集整理的mysql上将文本上数据批量导入数据库c语言实现(CAPI)_MySQL全部内容,希望文章能够帮你解决mysql上将文本上数据批量导入数据库c语言实现(CAPI)_MySQL所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。
来源:【匿名】