Mysql官方提供有多種api(應(yīng)用程序接口),其中自然也是有c語言的api的,用來提供c/c++語言來連接和使用mysql數(shù)據(jù)庫(kù),我們可以簡(jiǎn)單的查看一下官方的參考手冊(cè):
圖片.png
我們就可以看到起包含的基于各種語言的api了,這也意味著mysql的支持性是非常強(qiáng)大的.
我們簡(jiǎn)單查看一下關(guān)于c語言api的簡(jiǎn)單實(shí)現(xiàn):
圖片.png
- 包含相關(guān)的頭文件
- 連接上兩個(gè)相關(guān)的庫(kù)文件:
圖片.png
我們可以在本地mysql安裝位置找到include文件夾和lib文件夾:
發(fā)現(xiàn)果然,include文件夾包含了所有mysql相關(guān)的頭文件,在使用時(shí)可以選擇全部包含進(jìn)項(xiàng)目,也可以選擇只包含需要使用的頭文件.
圖片.png
圖片.png
將lib下相關(guān)的庫(kù)文件導(dǎo)入到你的c++項(xiàng)目目錄中.使得程序能夠在鏈接的時(shí)候連接到他們.
圖片.png
- 編寫一個(gè)簡(jiǎn)單的Mysql連接程序.檢驗(yàn)是否能夠成功連接到mysql數(shù)據(jù)庫(kù):
// 使用mysql數(shù)據(jù)庫(kù),必須引入mysql.h頭文件
// 并且在最新版vs2019中必須在mysql.h頭文件的前面引入windows.h或winsock.h頭文件.否則mysql.h會(huì)報(bào)錯(cuò),某些元素將是未被定義的.
#include <iostream>
#include <Windows.h>
#include "mysql.h"
#pragma comment(lib,"libmysql.lib")
using namespace std;
int main()
{
// 建立一個(gè)連接
MYSQL my;
mysql_init(&my);
// mysql_real_connect 連接mysql數(shù)據(jù)庫(kù).參數(shù)分別是ip地址,用戶名,密碼,數(shù)據(jù)庫(kù),端口號(hào).后面兩個(gè)參數(shù)是套接字與端口標(biāo)識(shí),暫時(shí)不需要了解.置零就可以了.
if (mysql_real_connect(&my,"127.0.0.1","root","1011","spring_blog",3306,NULL,0))
{
cout << "連接成功" << endl;
}
else
{
cout << "連接失敗";
}
// 聲明一個(gè)結(jié)果集.
MYSQL_RES* result;
MYSQL_ROW row;
int num,i;
// mysql_query函數(shù),用來執(zhí)行sql語句,進(jìn)行各種數(shù)據(jù)庫(kù)操作.
if (!mysql_query(&my,"select * from m_user")) { //查詢成功返回0,否則返回隨機(jī)數(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)然,你還可以使用它訪問遠(yuǎn)程數(shù)據(jù)庫(kù)或者實(shí)現(xiàn)跨平臺(tái)的數(shù)據(jù)庫(kù)訪問.
2019.12.26
11:47