C/C++访问MySQL数据库

打开项目

  1. VS配置属性
    1打开mysql的安装目录,默认安装目录如下:C:\Program Files\MySQL\MySQL Server 8.0,确认 lib 目录和include 目录是否存在。

  2. 打开VS2019,新建一个空工程,控制台应用程序即可,注意:解决方案平台选择 X64

在这里插入图片描述
3. 右击工程名,打开属性页
在这里插入图片描述

添加mysql头文件路径

  1. 选择C/C++ ,然后选择 ->常规->附加包含目录->编辑; 将mysql安装文件中的include文件的路径添加到这里。
    在这里插入图片描述
    添加完成后的头文件包含路径:如下
    在这里插入图片描述

添加mysql库文件路径

  1. 选择链接器,然后选择 ->常规->附加库目录->编辑;在库目录中将mysql文件中的lib文件路径添加进来
    在这里插入图片描述

添加库名称

  1. 选择链接器,然后选择 ->输入->附加依赖项->编辑;将mysql安装文件夹中lib目录下的libmysql.lib文件加到“附加依赖项”中,注意,这里直接把libmysql.lib这个依赖名加进去即可,不要加路径。
    在这里插入图片描述

拷贝libmysql.dll文件

把mysql安装目录里的lib\libmysql.dll复制到c:\windows\system32下;

测试

编译如下代码,启动mysql 80, 将代码中连接数据库的用户名和密码改成自己的设定,顺利获取到student 表中的结果即表示连接成功!

//Author:See QQ:3492625357
//将xxx改为自己的mysql用户名和密码即可 源码通过测试 若有不当之处欢迎指正
 
#include <stdio.h>
#define USER xxx
#define PW xxx
#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", "USER", "PW", "school", 3306, NULL, 0) == NULL) {
		printf("错误原因: %s\n", mysql_error(&mysql));
		printf("连接失败!\n");
		exit(-1);
	}
 
	//查询数据
	int ret = mysql_query(&mysql, "select * from 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;
}

代码2

#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是出于启动状态,并且相应的数据库和表要存在才能访问成功!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值