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

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

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

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

#include <stdlib.h>
#include <iostream>
#include<mysql.h>
#include<string>
#include <stdio.h>
#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 <stdlib.h>
#include <iostream>
#include<mysql.h>
#include<string>
#include <stdio.h>
#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<<"查无此号"<<endl;
		}
		else
			cout<<p<<endl;
	}
}

同理,如果更新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()));
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值