c/c++访问mysql数据库

c/c++访问数据库:
Windows平台下c/c++访问mysql数据库的方法有很多种,这里我介绍我认为比较简单的一种方式。以vs2019访问MySQL8.0为例
方式如下:

第一步,确定MySQL安装路径下的相关库文件和头文件是否存在:
打开mysql安装目录默认安装目录:打开mysql的安装目录,默认安装目录如下:C:\Program Files\MySQL\MySQL Server 8.0,确认lib 目录和include 目录是否存在。因为我们在写代码访问MySQL8.0时需要用到里面的库文件和头文件,所以要确保这两个文件是否存在。

第二步,新建一个空项目:
打开vs2019,新建一个空项目

在这里插入图片描述
这里我们选择空项目:
在这里插入图片描述

项目名称自己随便取一个,项目路径选择一个自己记得的路径就行
在这里插入图片描述
然后在项目里面新建一个.cpp文件
**第三步,环境配置:**环境配置很重要,如果环境配置出问题,很有可能在编译过程中没法通过编译,首先我们需要将解决方案平台设置成x64的:
在这里插入图片描述

然后右击项目名称选择“属性”
在这里插入图片描述
点击后进入属性页表并选择vc++目录:
在这里插入图片描述然后将mysql8.0安装路径下的头文件和库文件所在的路径分别拷贝到VC++目录里面的包含目录和库目录里面
在这里插入图片描述
在这里插入图片描述
进入如下界面
在这里插入图片描述将include安装路径拷贝到包含目录后点击“确定”,同样点击“库目录”将“lib”的安装路径拷贝进来:
在这里插入图片描述点击确定
其次还需要添加附加依赖项,点击“链接器”将其扩展组件展开,然后选择并点击“输入”,然后点击弹出来的【附加依赖项】,并且将库文件“libmysql.lib”拷贝进来,默认路径:C:\Program Files\MySQL\MySQL Server 8.0\lib

在这里插入图片描述
【libmysql.lib】文件在这里插入图片描述拷贝完毕后再点击【确定】->【应用】即可
最后只需要将【libmysql.dll】动态链接库拷贝到c盘下的Windows下的system32里面
在这里插入图片描述执行如下拷贝
在这里插入图片描述因为我之前配置过,所以会出现【替换目标中的文件】,如果是第一次配置是不会出现这样的情况的,这一步执行完毕之后我们就可以快乐的下代码访问MySQL数据库啦

第四步,在我们的项目中输入如下代码:

#include <stdio.h> 
#include <mysql.h> // mysql 文件

int main(void) {
	MYSQL mysql; //数据库句柄
	MYSQL_RES* res; //查询结果集 
	MYSQL_ROW row; //记录结构体

	//初始化数据库 
	mysql_init(&mysql);
	//设置字符编码
	mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "gbk");
	//连接数据库
	if (mysql_real_connect(&mysql, "127.0.0.1", "root",
		//59563183zxXYL", "test"分别是我的数据库登录密码和表所在的数据名称
		//这里替换成自己的的数据库等路密码和自己所建的数据库名称即可
		"59563183zxXYL", "test", 3306, NULL, 0) == NULL) {
		

		printf("错误原因: %s\n", mysql_error(&mysql));
		printf("连接失败!\n");
		exit(-1);
	}
	//查询数据
	int ret = mysql_query(&mysql, "select * from student;");
	***//student是自己在数据库中所建的表名***
	printf("ret: %d\n", ret);
	//获取结果集
	res = mysql_store_result(&mysql);
	//给 ROW 赋值,判断 ROW 是否为空,不为空就打印数据。
	while (row = mysql_fetch_row(res)) {
		printf("%s ", row[0]); //打印 ID
		printf("%s ", row[1]); //打印姓名
		printf("%s ", row[2]); //打印班级
		printf("%s \n", row[3]);//打印性别
	}
	//释放结果集 
	mysql_free_result(res); //关闭数据库
	mysql_close(&mysql);
	system("pause");
	return 0;
}

【注意】代码中的数据库登录名和数据库名称及表的名称不一样

输完上面的代码之后就可以编译运行我我们德程序啦,运行结果如下:
控制台访问结果:
在这里插入图片描述
MySQL数据库表中的查询结果:
在这里插入图片描述
结果一模一样
【注意】控制台程序运行之前必须保证mysql是出于启动状态,并且相应的数据库和表要存在才能访问成功!

C++访问MySQL #include "stdafx.h" #include #include #include int main(int argc,char* argv[])   {     char *user ="root", *pwd ="123456", *dbname = "chardb";     MYSQL  mysql;     MYSQL_RES  *mysql_ret;     MYSQL_ROW  mysql_row;     unsigned  long  num_rows;     int  ret;     mysql_init(&mysql);     if(mysql_real_connect(&mysql,NULL,user,pwd,dbname,0,NULL,0))     {       printf("连接成功!n");       ret  =  mysql_query(&mysql,"select  *  from  accounts");       if(!ret)       {         printf("查询成功!n");         mysql_ret  =  mysql_store_result(&mysql);         if(mysql_ret  !=  NULL)         {           printf("存储结果成功!n");           num_rows  =  mysql_num_rows(mysql_ret);           if(num_rows  !=  0)           {             printf("%dn",num_rows);             while(mysql_row  =  mysql_fetch_row(mysql_ret))             {               printf("%st%st%st%st%st%sn",mysql_row[0],mysql_row[1],mysql_row[2],mysql_row[3],mysql_row[4],mysql_row[5]);             }           }           else           {             exit(-1);           }           mysql_free_result(mysql_ret);           exit(0);         }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值