C语言连接MYSQL数据库
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
while (!feof(fp)) {
int i=0,index=0; for(i=0; i<ELEMENTS_PER_LINE; i++) { //分隔字符串 按逗号分隔
sscanf(data.line+index,"%[^,]", data.data[i]); index+=strlen(data.data[i])+1; } insertData(data); printf("line=%s\n", data.line); //循环打印,每行的数据分隔之后的数据 for(i=0; i<ELEMENTS_PER_LINE; i++) { printf("data[%d]=%s\n", i,data.data[i]); }
MYSQL_RES *res;
//查询结果集,结构类型
MYSQL_FIELD *fd ; //包含字段信息的结构
MYSQL_ROW row ;
//存放一行查询结果的字符串数组
ຫໍສະໝຸດ Baidu
char qbuf[300]; //存放查询 sql 语句字符串
//定义数据库操作的宏,也可以不定义留着后面直接写进代码
#define MAX_STRING_LENGTH 256
//定义元素个数
#define MAX_ELEMENT_LENGTH 33
//定义显示的列数
#define ELEMENTS_PER_LINE 15
typedef struct {
char line[MAX_STRING_LENGTH]; char data[ELEMENTS_PER_LINE][MAX_ELEMENT_LENGTH]; }DATA;
#include <windows.h>
#endif
#include <stdio.h>
#include <stdlib.h>
#include "mysql.h"
#include <winsock.h>
#include <iostream.h>
#include <string.h>
MYSQL mysql,*sock; //定义数据库连接的句柄,它被用于几乎所有的 MySQL 函数
C 语言连接 MySQL 数据库 收藏
前几天公司让我做 C 语言和 MySQL 数据库的交互操作,费了九牛二虎之力之后总算做出来了,今天特地 把源代码贴出来供大家学习;如有人想要打包项目可以加我 QQ260990509,注明技术交流,即可获得打 包之后的项目!
#if defined(_WIN32) || defined(_WIN64) //为了支持 windows 平台上的编译
{ //如果插入数据出错,则告知系统用户 printf("插入数据出现错误\n"); printf("Couldn't get result from %s\n", mysql_error(sock));
} else { //如果插入数据成功,告知系统用户插入数据成功
printf("当前数据插入成功\n"); } //关闭数据库连接
return 0; //. 为了兼容大部分的编译器加入此行 }
/* 程序注意事项:
项目编译的时候需要用到的文件有:
mysql.h LIBCPD.LIB libmysql.dll LIBCD.LIB libmysql.lib my_alloc.h my_list.h mysql_com.h mysql_time.h mysql_version.h typelib.h
编译程序时候如果需要配置环境变量 工程-->设置-->连接-->对象库/模块 里边添加 libmysql.lib 环境变量 此时需要注意的是 libmysql.lib 这个文件要和你的项目文件放在一起 */
//获得连接 if (!(sock = mysql_real_connect(&mysql,"localhost","root","19890505","test",0,NULL,0))) {
fprintf(stderr,"Couldn't connect to engine!\n%s\n\n",mysql_error(&mysql)); perror(""); exit(1); } //以指定格式构建差爱如语句字符串 sprintf(qbuf,"insert into postranceaction values ('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')",parameter.dat a[0],parameter.data[1],parameter.data[2],parameter.data[3],parameter.data[4],paramet er.data[5],parameter.data[6],parameter.data[7],parameter.data[8],parameter.data[9],par ameter.data[10],parameter.data[11],parameter.data[12],parameter.data[13],parameter.d ata[14]); //执行插入操作 并判断是否插入成功, if(mysql_query(sock,qbuf))
fprintf(stderr,"Query failed (%s)\n",mysql_error(sock)); exit(1); } if (!(res=mysql_store_result(sock))) { fprintf(stderr,"Couldn't get result from %s\n", mysql_error(sock)); exit(1); } printf("number of fields returned: %d\n",mysql_num_fields(res)); while (row = mysql_fetch_row(res)) { printf("Ther userid is %d username is: %s\n",row[0],row[1]) ; puts( "query ok !\n" ) ; } mysql_free_result(res); mysql_close(sock); exit(0);
printf("\n\n"); //再次读取一行数据
fgets(data.line, MAX_STRING_LENGTH, fp); } }
//连接数据库 执行插入数据操作 参数为每次构造起来的实体指针 int insertData(DATA parameter) { //初始化 MySQL 服务器 mysql_init(&mysql);
void main() {
//申明数据库操作函数 int insertData(DATA parameter); //打开指定文件 FILE *fp=fopen("E:\\file.txt","r"); //创建结构体类型实体 DATA data;
memset(&data, 0x00, sizeof(DATA)); //得到一行数据 fgets(data.line, MAX_STRING_LENGTH, fp);
mysql_close(sock); return 0; }
//C 语言实现数据查询操作 int addData()
{ mysql_init(&mysql); if (!(sock = mysql_real_connect(&mysql,"localhost","root","19890505","test",0,NULL,0)))
{ fprintf(stderr,"Couldn't connect to engine!\n%s\n\n",mysql_error(&mysql)); perror(""); exit(1);
} sprintf(qbuf,SELECT_QUERY,2); if(mysql_query(sock,qbuf)) {