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;
}
复制代码

 

 

 

 

//

posted @   小城熊儿  阅读(1192)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示