windows+vs2017+C语言 引入mysql.h对MYSQL数据库的操作

(第一次写博客)
因为用的是wampserver,自带安装的mysql没有include的库
windows+vs2017+C语言 引入mysql.h对MYSQL数据库的操作_第1张图片
没有mysql.h文件 无法调用mysql的东西 也无法用C语言对MYSQL操作
引用某大佬的CSDN博客的做法(也找了很久试了很多方法)
去这个连接
https://downloads.mysql.com/archives/c-c/
windows+vs2017+C语言 引入mysql.h对MYSQL数据库的操作_第2张图片

把这玩意.zip下载下来,解压。
把里面的include和lib文件复制粘贴到VS工程的根目录下面
windows+vs2017+C语言 引入mysql.h对MYSQL数据库的操作_第3张图片
之后还有
windows+vs2017+C语言 引入mysql.h对MYSQL数据库的操作_第4张图片
在这里声明新引入的include文件 这样工程就可以根据这个路径去寻找新添加的头文件
即mysql.h
之前看大佬的博客路径用的是…/include
我试了用不了 我之后直接把整套路径写进去 简单粗暴无脑
windows+vs2017+C语言 引入mysql.h对MYSQL数据库的操作_第5张图片
还有一步,就是去lib文件夹下面的libmysql.dll和libmysql.lib
复制粘贴这两个文件到工程的根目录下面
windows+vs2017+C语言 引入mysql.h对MYSQL数据库的操作_第6张图片
在VS头文件声明#pragma comment(lib,“libmysql.lib”)
这里写图片描述
在程序中就可以引用#include的头文件啦
这里写图片描述

mysql_init,mysql_real_query等等的函数就可以用了
下面是对mysql的连接并插入,有三个字段,number,phone和id

#include 
#include 
#include
#include
#include 
#pragma comment(lib, "libmysql.lib")
using namespace std;
int main()		
{
MYSQL mydata;  //=mysql_init((MYSQL*)0); 
	if (NULL != mysql_init(&mydata)) {
		cout << "mysql_init()succeed" << endl;
	}
	else {
		cout << "mysql_init()failed" << endl;
		return -1;
	}
	//连接数据库  
	if (NULL != mysql_real_connect(&mydata, "localhost", "root", "", "data", 3306, NULL, 0))
		//这里的地址,用户名,密码,数据库,端口可以根据自己本地的情况更改  
	{
		cout << "mysql_real_connect()succeed" << endl;
	}
	else
	{
		cout << "mysql_real_connect()failed" << endl;
	}
	string query ;
	string number = "20180904,";//用string灵活很多
	string phone = "18888888,";//拼接 到时候可以根据需要进行修改
	query = "insert into data (number,phone,id) values (" + number + phone + "1)";
	int res = mysql_real_query(&mydata, query.c_str(), (unsigned int)strlen(query.c_str()));
	if (!res) {

		printf("Inserted %lu rows\n",
			(unsigned long)mysql_affected_rows(&mydata));//成功显示
	}
	else {

		fprintf(stderr, "Insert error %d: s\n", mysql_errno(&mydata),
			mysql_error(&mydata));//错误的话,注意看错误代码!!根据错误代码去百度你的查错误原因
	}
	mysql_close(&mydata);
	return 0;
}

下面是对MYSQL的提取,就是SQL语句中的select系列

#include 
#include 
#include
#include
#include 
#pragma comment(lib, "libmysql.lib")
using namespace std;
int main()
{
	MYSQL my_connect;
	MYSQL_RES *result;
	MYSQL_ROW row;
	mysql_init(&my_connect);//初始化
	mysql_real_connect(&my_connect, "localhost", "root", "", "data", 3306, NULL, 0);
	string sql = "select id from data where phone=18888888";
	int flag=mysql_real_query(&my_connect, sql.c_str(), (unsigned int)strlen(sql.c_str()));
	if (!flag)//成功执行
	{
		string e;
		result= mysql_store_result(&my_connect);
		while (row = mysql_fetch_row(result))
		{
			e = row[0];//把id提取出来,但是返回的是字符串类型,我知道id要么是1或者是0
		}
		char ee;
		ee = e[0];//转换成char,这样方面转换成int
		int p;
		p = ee - '0';//转换成int
		if (p == -48) //-48是个神奇的数字,如果数据库中phone不匹配,那么转换成char再转换成int,值刚好伪-48
		{
			cont<<"查无此号"<

同理,如果更新MYSQL函数的值得话,改为update的

string sql = "update data set id=1 where number='20180901'";
int res = mysql_real_query(&my_connect, sql.c_str(), (unsigned int)strlen(sql.c_str()));

你可能感兴趣的:(windows+vs2017+C语言 引入mysql.h对MYSQL数据库的操作)