[置顶] mysql上将文本上数据批量导入数据库c语言实现(C API)
来源:程序员人生 发布时间:2014-12-30 10:15:53 阅读次数:4049次
其实原理很简单,想必大家应当都看了我写的那篇(1个代码学会c语言操作数据库)linux上通过c语言操作数据库实现基本的学生信息管理系统(增、删、查、改‘显示)
http://blog.csdn.net/guoqianqian5812/article/details/41381645博文,那末大家肯定知道怎样完成插入1个学生信息的,只要大家知道那末下面批量将输入导入数据库就很好实现了,这个方法就是在通过fgets函数读取文件里的内容,每读取1行,然后用strtok函数将其分割开,获得有用的数据段传到C API函数哪里(insert函数),然后用sprintf函数将其格式化写入履行语句下面就和c语言操作数据库的“增”1样了。
代码以下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <mysql.h>
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
",query);
t=mysql_real_query(&mysql,query,(unsigned int)strlen(query));
if(t)
{
printf("履行插入时出现异常: %s",mysql_error(&mysql));
}
else
{
printf("添加成功
");
}
}
int main()
{
FILE *fp;
char buff[300];
fp=fopen("englishword4.txt","r");//打开不同的文件
if(fp==NULL)
{
printf("Fail to open
");
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...
");
}
char *p;
char a[20];
char b[200];
char c[10];
int length = 0;
while(fgets(buff,300,fp)!=NULL)
{
if(buff[strlen(buff)⑴]=='
')
{
buff[strlen(buff)]='