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