VS2017调用MySQL 8.0(附上C++程序)

简述

在网上找了一些解答,发现都有些小问题。

就自己写一个吧

配置

配置很关键。

  • 我的MySQL安装目录为 C:\Program Files\MySQL

VS2017调用MySQL 8.0(附上C++程序)

  • 2的部分写的地址: C:\Program Files\MySQL\MySQL Server 8.0\include
  • 3的部分写的地址: C:\Program Files\MySQL\MySQL Server 8.0\lib

配置链接器:

VS2017调用MySQL 8.0(附上C++程序)

  • 2中写的内容为: libmysql.lib

最后一步: 移动这个libmysql.dllC:\Windows\System32 目录下

代码

注意!!上面的这一步非常重要!!

  • pwd:为密码
  • root:账号
  • 3306:登陆端口号
  • jxgl:是我数据库中的一个database
  • 执行的命令中的student是我这个表
#include <stdio.h>
#include <mysql.h> // 如果配置ok就可以直接包含这个文件
int main(void)
{
	MYSQL mysql;    //一个数据库结构体
	MYSQL_RES* res; //一个结果集结构体
	MYSQL_ROW row;  //char** 二维数组,存放一条条记录
					//初始化数据库
	mysql_init(&mysql);
	//设置编码方式
	mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "gbk");
	//连接数据库
	//判断如果连接失败就输出连接失败。
	if (mysql_real_connect(&mysql, "localhost", "root", "pwd", "jxgl", 3306, NULL, 0) == NULL)
		printf("连接失败!\\n");
	//查询数据
	mysql_query(&mysql, "select * from student");
	//获取结果集
	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;
}