Visual Studio 2022 C++连接MySql数据库(win7和win10亲测有效)

菜鸟生成记(91)

VS2022在win7上安装时,会提示“部分功可能会失效”,但是目前win7运行VS2022未发现异常,能用win10尽量用win10;(我的电脑太辣鸡了,一直没更新win10,不常用,懒得更新,一直白嫖实验室的台式机)

dalao的文件配置教程<----点这里

按照上面的教程配置文件后,还有可能出现另一个问题(win7和win10均出现该问题),

“由于找不到libmysql.dll,无法继续执行代码。重新安装程序可能会解决此问题。”

在这里插入图片描述

libmysql.dll文件是MySQL的动态链接库文件,缺少此文件数据库无法正常工作

解决方法

找到mysql的安装目录
//这是我的安装路径
(1)C:\Program Files\MySQL\MySQL Server 8.0\lib
复制lib文件夹下有个libmysql.dll
(2)将libmysql.dll粘贴到
C:\WINDOWS\System32
System32文件夹中

至此文件配置基本完成,然后之后出现一些问题例如:0x0000011与0x0013123地址访问冲突等,大概率是mysql语句写错了,也可能是操作空指针(select查询会返回结果集,其他返回的是空集),C++的异常抛出信息有点儿含糊不清(这就要凭经验Debug了,疯狂试错)

//main.cpp
#include"mysql_option.h"
int main(){
	mysql_option();
	return 0;
}
//mysql_option.h
#include<iostream>
#include<mysql.h>
#include<string>
using namespace std;
void getConnection(MYSQL& mysql, string host, string userName, string passWord, string dbName);
void select(MYSQL& mysql, string op);
void insert(MYSQL& mysql, string op);
void update(MYSQL& mysql, string op);
void delete_(MYSQL& mysql, string op);
int mysql_option();
//mysql_option.cpp
#include"mysql_option.h"
//与MySql数据库建立连接
void getConnection(MYSQL& mysql, string host, string userName, string passWord, string dbName) {
	mysql_init(&mysql);// 初始化一个MYSQL 连接的实例对象
	//连接MySql
	mysql_real_connect(&mysql, host.c_str(), userName.c_str(), passWord.c_str(), dbName.c_str(), 3306, 0, 0);
	//我在win7和win10都会出现中文乱码,修改数据库编码方式解决问题
	mysql_query(&mysql, "SET NAMES GB2312");//修改mysql编码方式
	//mysql_query(&mysql, "SET NAMES UTF8");
}
void select(MYSQL& mysql, string op) {//查询(op:mysql操作语句)
	mysql_query(&mysql, op.c_str());
	MYSQL_ROW row; //char** 二维数组,存放一条条记录
	MYSQL_RES* res = mysql_store_result(&mysql);//返回结果集
	int count1 = mysql_num_rows(res);//获取记录个数(参数为结果集行数,仅select可用)
	int count2 = mysql_num_fields(res);//返回字段个数(表的列数)
	int k = 1;
	cout << "共:" << count1 << "条记录" << endl;
	while ((row = mysql_fetch_row(res)) != NULL) {//获取结果集(res)中的一行,并且指针指向下一行
		printf("第 %-3d 行:",k);
		for (int i = 0; i < count2; ++i)
			printf("%-10s\t", row[i]);//输出字段值
			//cout << string(row[i]) << " ";
		cout << endl;
		++k;
	}
}
void insert(MYSQL& mysql, string op) {//插入
	int count = 0;
	mysql_query(&mysql, op.c_str());
	count = mysql_affected_rows(&mysql);//参数为mysql结构体(返回操作影响行数)
	printf("插入:%d 条记录\n", count);
}
void update(MYSQL& mysql, string op) {//更新
	int count = 0;
	mysql_query(&mysql, op.c_str());
	count = mysql_affected_rows(&mysql);//参数为mysql结构体(返回操作影响行数)
	printf("更新:%d 条记录\n", count);
}
void delete_(MYSQL& mysql, string op) {//删除
	int count = 0;
	mysql_query(&mysql, op.c_str());
	count = mysql_affected_rows(&mysql);//参数为mysql结构体(返回操作影响行数)
	printf("删除:%d 条记录\n", count);
}
int mysql_option() {

	MYSQL mysql;//数据库结构体
	string host = "localhost";
	string userName = "root";//这是我的mysql账户
	string passWord = "root";///这是我的mysql账户密码
	string dbName = "zyh1";//这是我的mysql数据库名
	getConnection(mysql, host, userName, passWord, dbName);
	//insert(mysql, "insert into stuzyh values('xinggong','2021','zyh')");
	//delete_(mysql, "delete from stuzyh where 姓名='zyh'");
	update(mysql, "update stuzyh set 院部='信工' where 院部='xinggong'");
	select(mysql, "select * from stuzyh");//只有查询才有结果集
	mysql_close(&mysql); // 释放一个MYSQL 连接
	return 0;
}

在这里插入图片描述

  • 7
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要在Visual Studio 2022连接MySQL,您需要执行以下步骤: 1. 下载和安装MySQL Connector/C++:您可以从MySQL官方网站下载和安装MySQL Connector/C++。此外,您需要将Connector/C++添加到Visual Studio 2022的“附加依赖项”中。 2. 创建一个新的C++项目:在Visual Studio 2022中,创建一个新的C++项目。 3. 添加MySQL头文件:在项目中添加MySQL的头文件,以便您可以使用MySQL连接函数。 4. 添加MySQL库文件:在项目中添加MySQL的库文件,以便您可以连接MySQL数据库。 5. 编写连接代码:编写代码以连接MySQL数据库。您可以使用MySQLC++ API或ODBC API进行连接。 以下是一个使用C++ API连接MySQL数据库的示例代码: ```cpp #include <iostream> #include <mysql.h> using namespace std; int main() { MYSQL* conn; // MySQL连接对象 MYSQL_RES* res; // MySQL查询结果对象 MYSQL_ROW row; // MySQL查询结果的一行 conn = mysql_init(NULL); // 初始化MySQL连接对象 if (conn == NULL) { cout << "Error: " << mysql_error(conn) << endl; exit(1); } // 连接MySQL服务器 if (mysql_real_connect(conn, "localhost", "username", "password", "database_name", 0, NULL, 0) == NULL) { cout << "Error: " << mysql_error(conn) << endl; exit(1); } // 执行SQL查询语句 if (mysql_query(conn, "SELECT * FROM table_name")) { cout << "Error: " << mysql_error(conn) << endl; exit(1); } res = mysql_use_result(conn); // 获取查询结果 // 输出查询结果 while ((row = mysql_fetch_row(res)) != NULL) { cout << row[0] << " " << row[1] << " " << row[2] << endl; } mysql_free_result(res); // 释放查询结果对象 mysql_close(conn); // 关闭MySQL连接对象 return 0; } ``` 在上面的代码中,您需要将“username”、“password”和“database_name”替换为您自己的用户名、密码和数据库名称。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值