Mysql学习笔记-001-使用VS2019与Mysql-C-API实现对数据库的操作

前言:
最近到了期末。各种课程设计迎面而来。完了一些项目在本地存储和读写实在是麻烦的很。所以动了歪心思。琢磨着一劳永逸。

1-安装MYSQL

这个可以看我的上一篇博文

https://blog.csdn.net/wsc3506/article/details/112427609

2-Visual Studio2019 的安装

这个暂时简单介绍,有时间会写一篇完整的介绍或者是找一篇完整一点的博客。

https://visualstudio.microsoft.com/downloads/
访问VisualStudio 的官方下载

在这里插入图片描述
在这里选择你适合的版本,一般选择社区版本足够使用。

3-配置VS2019工程

3.1新建项目[C++空项目]

打开VisualStudio2019-选择创建新项目
选择创建新项目

选择C++的空项目
在这里插入图片描述在这里插入图片描述

点击创建,第一步完成

3.2- 项目配置前准备

新建的空项目,里面没有任何文件,需要我们去添加

我们新建一个main.cpp,添加基础Cpp代码(如果不添加稍后在属性中找不到C++选项

#include <iostream>
#include <cstdio>

using namespace std;

int main()
{

	cout << "hello" << endl;

	return 0;
}

如下对比
在这里插入图片描述
添加前
在这里插入图片描述
添加后

然后是调整到x64的debug模式

在这里插入图片描述


项目的实现准备我们已经完成了,剩下的就是准备mysql文件的目录。

我们需要mysql的include 和 lib两个目录,可以直接引用mysql的文件,也可以复制到项目路径下。
准备好mysql 的路径

D:\File\Tools\IDE\Mysql\mysql-8.0.16-winx64
这个是我的mysql文件路径

在这里插入图片描述
红圈的两个文件夹就是我们稍后在VS2019项目设置中所需要用到的

3.3-正式的项目配置

在这里插入图片描述
在项目->属性中 引用include文件夹
在这里插入图片描述
链接lib文件夹

在这里插入图片描述

添加 libmysql.lib 直接输入即可
在这里插入图片描述
在项目文件夹下添加libmysql.lib文件和libmysql.dll文件

在这里插入图片描述
(这两个文件的地址位于/mysql/lib目录下在这里插入图片描述

对项目的配置到此结束

4-写一个小Demo

我们在#include"mysql.h"之前要注意几点
首先是#include 内容的注意。除了必不可少的iostream/stdio.h
在引用mysql.h的时候,我们要先引用winsocket.h或者winsocket2.h

因为调用了libmysql.lib 还有使用了winsocket模块 我们在#include部分下面添加

   #pragma comment(lib,"wsock32.lib")
   #pragma comment(lib,"libmysql.lib")

剩下的暂时没想到,以后在补充。附上具体代码

#include <cstdio>
#include <WinSock.h>  //一定要包含这个,或者winsock2.h
#include "mysql.h"//引入mysql头文件(一种方式是在vc目录里面设置,一种是文件夹拷到工程目录,然后包含)
#include <iostream>
#include <string>
#pragma comment(lib,"wsock32.lib")
#pragma comment(lib,"libmysql.lib")
using namespace std;

int main() {
	MYSQL mysql;
	mysql_init(&mysql);
	mysql_real_connect(&mysql, "localhost", "root", "123456", "table", 3306, NULL, 0);
}
	try
	{	//MySQL命令
		string sql = "SELECT * from vip;";
		if (mysql_query(&mysql, sql.c_str()))
		{
			string err_string = mysql_error(&mysql);

			if (err_string.empty())
				throw string("MySQL query is error!");
			else
				throw err_string;
		}
		cout << "MySQL : " << sql << endl;

		MYSQL_RES* result = mysql_store_result(&mysql);
		if (!result)
			throw string("MySQL not result!");
		//获取字段数量
		int num_fields = mysql_num_fields(result);
		if (0 == num_fields)
			throw string("MySQL fields number is 0!");
		//获取字段名
		MYSQL_FIELD * fields = mysql_fetch_fields(result);
		if (!fields)
			throw string("MySQL fields fetch is error!");

		for (int i = 0; i < num_fields; i++)
		{
			cout << " " << fields[i].name;
		}
		cout << endl;

		while (MYSQL_ROW row = mysql_fetch_row(result)) //获取整条数据内容
		{
			for (int i = 0; i < num_fields; i++)
			{
				if (NULL == row[i])
				{
					cout << " NULL";
				}
				else
				{
					cout << " " << row[i];
				}
			}
			cout << endl;
		}

		mysql_free_result(result);

		cout << "MySQL is OK." << endl;
	}
	catch (string & error_msg)
	{
		cout << error_msg << endl;
	}
	catch (...)
	{
		cout << "MySQL operation is error!" << endl;
	}
	mysql_close(&mysql);
	return 0;
}//简单的信息输出


数据库截图
在这里插入图片描述
运行效果,虽然有点乱,但是勉强可以用
在这里插入图片描述

以上,学习笔记。遇到坑的话会在此博客继续记录。

参考

https://blog.csdn.net/zxng_work/article/details/78926413

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值