C++访问MySQL数据库

发布于:2025-02-25 ⋅ 阅读:(18) ⋅ 点赞:(0)

配置MySQL的环境

第一步:打开MySQL的安装目录,默认安装目录如下:“C:\Program Files\MySQL\MySQL Server 8.0”,然后确认include目录和lib目录是否存在。
在这里插入图片描述
第二步:打开VS2022,新建一个空工程,控制台应用程序即可。注意:解决方案平台选择X64。
在这里插入图片描述
第三步:右击工程名,打开属性页。
在这里插入图片描述
第四步:打开VC++目录,在包含目录中,将MySQL安装文件中的include文件的路径添加到这里。
在这里插入图片描述
第五步:打开VC++目录,在库目录中将MySQL文件中的lib文件路径添加进来。
在这里插入图片描述
第六步:在属性页的链接器中,点击“输入”,将MySQL安装文件夹中lib目录下的libmysql.lib文件添加到“附加依赖项”中,注意,这里直接把libmysql.lib这个依赖名加进去即可,不要加路径。
在这里插入图片描述
第七步:将MySQL安装目录下的lib\libmysql.dll复制到当前可执行程序的目录下。
在这里插入图片描述

C++访问数据库

#include <iostream>
#include <mysql.h>

int main() {
	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", "root", "school", 3306, NULL, 0) == NULL) {
		std::cout << "连接失败:" << mysql_error(&mysql);
		return -1;
	}

	//查询数据
	int iRet = mysql_query(&mysql, "select * from student");
	
	//获取结果集
	res = mysql_store_result(&mysql);

	//给ROW赋值,判断ROW是否为空,不为空就打印数据
	while (row = mysql_fetch_row(res)) {
		std::cout << row[0] << "," << row[1] << "," << row[2] 
			<< "," << row[3] << "," << row[4] << std::endl;
	}

	//释放结果集
	mysql_free_result(res);
	
	return 0;
}

输出结果:
在这里插入图片描述
通过访问数据库得到的结果:
在这里插入图片描述