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;
}

 

 

 

 

//


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM