- 论坛徽章:
- 0
|
文件的部分内容如下:
- 283 第二分区 020179 水流指示 二层西前区
- 284 第二分区 020180 信号碟阀 二层西前区
- 285 第二分区 020181 防火阀 二层西前区
- 286 第二分区 020182 防火阀 二层西前区
复制代码
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <errno.h>
- //#include <sys/iconv.h>
- //#include "/usr/src/sys/sys/iconv.h"
- //#include "/usr/src/bin/csh/iconv.h"
- #include "/usr/local/include/mysql/mysql.h"
- int
- main(int argc,char **argv)
- {
- MYSQL mysql;
- FILE *fp;
- if( 2 != argc ){
- fprintf(stderr,"Usage:./prog inputfile\n");
- exit(-1);
- }
- if( NULL == (fp=fopen(argv[1],"r")) ){
- fprintf(stderr,"%s\n",strerror(errno));
- exit(-1);
- }
- fprintf(stdout,"file %s opend...\n",argv[1]);
- mysql_init(&mysql);
- if(NULL==mysql_real_connect(&mysql,"localhost","zhongyi","localhost","ZhongYi",0,NULL,0)){
- fprintf(stderr,"Failed to connect to database: Error: %s\n",mysql_error(&mysql));
- exit(-1);
- }
- fprintf(stdout,"DataBase Connected...\n");
- if( 0 != mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"utf8")){
- fprintf(stderr,"mysql_options Error: %s\n",mysql_error(&mysql));
- exit(-1);
- }
- if( 0 != mysql_set_character_set(&mysql,"utf8") ){
- fprintf(stderr,"mysql_set_character_set Error: %s\n",mysql_error(&mysql));
- exit(-1);
- }
- /* --------------------------------- */
- /* 021 第一分区 010021 光电感烟 一层东后区 */
- for(char buf[4096]; NULL != fgets(buf,4096,fp); ){
- /*
- * | fenqu | char(30)
- * | bianma | int(6) unsigned zerofill
- * | liexin | char(30)
- * | weizhi | char(30)
- */
- char query[1024]="INSERT INTO zy(fenqu,bianma,liexin,weizhi) VALUES('";
- char *iter_b,*iter_e;
- for(iter_b=buf; 0 < *iter_b; ++iter_b);
- for(iter_e=iter_b; 0 > *iter_e; iter_e+=2);
- strncat(query,iter_b,iter_e-iter_b);
- strcat(query,"',");
- for(iter_b=iter_e; ' '==*iter_b; ++iter_b);
- for(iter_e=iter_b; ' '!=*iter_e; ++iter_e);
- strncat(query,iter_b,iter_e-iter_b);
- strcat(query,",'");
- for(iter_b=iter_e; 0 < *iter_b; ++iter_b);
- for(iter_e=iter_b; 0 > *iter_e; iter_e+=2);
- strncat(query,iter_b,iter_e-iter_b);
- strcat(query,"','");
- for(iter_b=iter_e; 0 < *iter_b; ++iter_b);
- for(iter_e=iter_b; 0 > *iter_e; iter_e+=2);
- strncat(query,iter_b,iter_e-iter_b);
- strcat(query,"')");
- /* iconv */
- /*
- iconv_t cd;
- char outbuf[1024];
- size_t in=strlen(query),out=1024;
- if( (iconv_t)-1 == (cd = iconv_open("UTF-8","GBK")) ){
- fprintf(stderr,"Iconv_open Error: %s\n",strerror(errno));
- exit(-1);
- }
- if( (size_t)-1 == iconv(cd,(char **)&query,(size_t *)&in,(char **)&outbuf,(size_t *)&out) ){
- fprintf(stderr,"Iconv Eoor: %s\n",strerror(errno));
- exit(-1);
- }
- */
- if( mysql_real_query(&mysql,query,strlen(query)) ){
- fprintf(stderr,"Error making query: %s\n",mysql_error(&mysql));
- }
- /*
- if( -1 == iconv_close(cd) ){
- fprintf(stderr,"Iconv_close Error: %s\n",strerror(errno));
- exit(-1);
- }
- */
- }
- fclose(fp);
- mysql_close(&mysql);
- exit(0);
- }
复制代码
gcc -std=c99 -L /usr/local/lib/mysql/ -lmysqlclient -I /usr/local/include/mysql/ main.c -o sql
./sql ~/doc 运行后
进mysql看select * from zy;出来的是问号和空值    |
|