[c/c++] _ 連接Mysql數(shù)據(jù)庫(Mysql api)

Mysql官方提供有多種api(應(yīng)用程序接口),其中自然也是有c語言的api的,用來提供c/c++語言來連接和使用mysql數(shù)據(jù)庫,我們可以簡單的查看一下官方的參考手冊:

圖片.png

我們就可以看到起包含的基于各種語言的api了,這也意味著mysql的支持性是非常強大的.

我們簡單查看一下關(guān)于c語言api的簡單實現(xiàn):

圖片.png
  • 包含相關(guān)的頭文件
  • 連接上兩個相關(guān)的庫文件:
圖片.png

我們可以在本地mysql安裝位置找到include文件夾和lib文件夾:

發(fā)現(xiàn)果然,include文件夾包含了所有mysql相關(guān)的頭文件,在使用時可以選擇全部包含進項目,也可以選擇只包含需要使用的頭文件.

圖片.png
圖片.png

將lib下相關(guān)的庫文件導(dǎo)入到你的c++項目目錄中.使得程序能夠在鏈接的時候連接到他們.

圖片.png

  • 編寫一個簡單的Mysql連接程序.檢驗是否能夠成功連接到mysql數(shù)據(jù)庫:
// 使用mysql數(shù)據(jù)庫,必須引入mysql.h頭文件
// 并且在最新版vs2019中必須在mysql.h頭文件的前面引入windows.h或winsock.h頭文件.否則mysql.h會報錯,某些元素將是未被定義的.

#include <iostream>
#include <Windows.h>
#include "mysql.h"

#pragma comment(lib,"libmysql.lib")
using namespace std;
int main()
{
 
    // 建立一個連接
    MYSQL my;
    mysql_init(&my);

// mysql_real_connect 連接mysql數(shù)據(jù)庫.參數(shù)分別是ip地址,用戶名,密碼,數(shù)據(jù)庫,端口號.后面兩個參數(shù)是套接字與端口標(biāo)識,暫時不需要了解.置零就可以了.

    if (mysql_real_connect(&my,"127.0.0.1","root","1011","spring_blog",3306,NULL,0))
    {
        cout << "連接成功" << endl;
    }
    else
    {
        cout << "連接失敗";
    }

    // 聲明一個結(jié)果集.
    MYSQL_RES* result;
    MYSQL_ROW row;

    int num,i;

// mysql_query函數(shù),用來執(zhí)行sql語句,進行各種數(shù)據(jù)庫操作.

    if (!mysql_query(&my,"select * from m_user")) { //查詢成功返回0,否則返回隨機數(shù).
        cout << "查詢成功" << endl;
    }

    result = mysql_store_result(&my);

    num = mysql_num_fields(result);

    while (row = mysql_fetch_row(result))
    {
        for (i = 0; i < num; i++) {
            cout << row[i] << "\t";
        }
        cout << endl;
    }

    mysql_free_result(result);
    mysql_close(&my);
}

圖片.png

連接成功,當(dāng)然,你還可以使用它訪問遠程數(shù)據(jù)庫或者實現(xiàn)跨平臺的數(shù)據(jù)庫訪問.


2019.12.26
11:47

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容