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