c++ vs2019 使用mysql(简单高效)
vs2019链接mysql 网上说的,太麻烦,我研究了以后.觉得就是动态库和几个mysql文件的事儿,于是心生一计,直接copy下来,试一试
具体操作如下
1 新建工程
2 mysql安装好了之后,有include和lib文件,cpoy到新建的工程下
3 程序运行时候,需要dll动态库lib库,和头文件,全部添加到项目中 右击->添加->现有项(shift+alt+a) 把include和lib文件全部添加进来,结果差不多如下
4 引入头文件和lib文件 (注意,运行得是x64平台,不然跑不动,至于为啥,,,再议)
#include "include\mysql.h"
#pragma comment(lib,"./lib/libmysql.lib")
5 运行需要dll,但是不知道在文件内引入lib为啥不起作用,最为保险的办法是直接将dll文件cpoy到exe文件下 如下
5.2 如果不想每次都copy,可以将这个动态库,copy到 C:\Windows\System32\
6 完整测试代码
#define _CRT_SECURE_NO_WARNINGS #include <WinSock.h> //一定要包含这个,或者winsock2.h #include "include\mysql.h" //引入mysql头文件(一种方式是在vc目录里面设置,一种是文件夹拷到工程目录,然后这样包含) #include <Windows.h> #include <iostream> #include <string> #include<iomanip> using namespace std; //包含附加依赖项,也可以在工程--属性里面设置 #pragma comment(lib,"wsock32.lib") #pragma comment(lib,"./lib/libmysql.lib") #pragma comment(lib,"ws2_32.lib") int main() { MYSQL mysql; //一个数据库结构体 MYSQL_RES* res; //一个结果集结构体 MYSQL_ROW row; //char** 二维数组,存放一条条记录 char strsql[2048]; //初始化数据库 mysql_init(&mysql); //设置编码方式 mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "gbk"); //连接数据库 //判断如果连接失败就把连接失败的信息显示出来,我们好进行对应修改。 // mysql_real_connect参数:2.本地地址 3.你的mysql用户名 4.你的mysql密码 5.数据库名字 6.端口号 if (mysql_real_connect(&mysql, "localhost", "root", "pwd", "db1", 3306, NULL, 0) == NULL) { cout << (mysql_error(&mysql)); } //查询数据 mysql_query(&mysql, "SELECT * from equipment"); //获取结果集 res = mysql_store_result(&mysql); //显示数据 //给ROW赋值,判断ROW是否为空,不为空就打印数据。 while (row = mysql_fetch_row(res)) { printf("%s ", row[0]);//打印ID printf("%s ", row[1]);//打印ID string deviceid = row[1]; deviceid.erase(3, 2); string id(row[0]); cout << deviceid << endl; sprintf(strsql, "update equipment set equipId='%s' where id=%s", deviceid.c_str(), id.c_str()); // 也可以控制台手动输入sql语句 cout << strsql << endl; //if (mysql_query(&mysql, strsql)) // 执行SQL语句 //{ // cout << "error:" << mysql_error(&mysql) << endl; // return false; //} //else //{ // cout << "success..." << endl; //} cout << endl; } //释放结果集 mysql_free_result(res); //关闭数据库 mysql_close(&mysql); //停留等待 getchar(); return 0; }
//
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?