C API方式連線mysql資料庫實現增刪改查

2021-07-23 12:18:18 字數 2551 閱讀 5001

1,裝好mysql,新建乙個c++控制台工程(從最簡單的弄起,這個會了,可以往任何c++工程移植),在vs2010中設定,工程--屬性--vc++目錄--包含目錄,將mysql server\include的絕對路徑新增進去,例如c:\program files\mysql\mysql server 5.6\include。將mysql server\lib資料夾下的libmysql.lib和libmysql.dll拷貝到工程目錄下。

(也可以將include檔案整個拷貝到工程目錄下,然後在vc++目錄裡面設定相對路徑)

如果安裝的是wamp這種整合開發包,找不到include和lib也沒關係,隨便找個mysql免安裝版根目錄下的include資料夾和libmysql.lib以及libmysql.dll拷貝到工程目錄,然後設定vc++目錄即可。

新建乙個資料庫test,建立一張表user,如圖

注意有些字段需要改字元編碼為utf8或者gbk,防止中文亂碼。

2,為工程新增附加依賴項wsock32.lib和libmysql.lib,一種方式是工程--屬性--鏈結器--輸入--附加依賴項,另一種是在程式開頭用#pragma comment(lib,"***.lib")

3,為程式新增標頭檔案"mysql.h"和winsock.h

#include #include //一定要包含這個,或者winsock2.h

#include "include/mysql.h" //引入mysql標頭檔案(一種方式是在vc目錄裡面設定,一種是資料夾拷到工程目錄,然後這樣包含)

#include //包含附加依賴項,也可以在工程--屬性裡面設定

#pragma comment(lib,"wsock32.lib")

#pragma comment(lib,"libmysql.lib")

mysql mysql; //mysql連線

mysql_field *fd; //欄位列陣列

char field[32][32]; //存欄位名二維陣列

mysql_res *res; //這個結構代表返回行的乙個查詢結果集

mysql_row column; //乙個行資料的型別安全(type-safe)的表示,表示資料行的列

char query[150]; //查詢語句

bool connectdatabase(); //函式宣告

void freeconnect();

bool querydatabase1(); //查詢1

bool querydatabase2(); //查詢2

bool insertdata();

bool modifydata();

bool deletedata();

int main(int argc,char **argv)

//連線資料庫

bool connectdatabase()

else }

//釋放資源

void freeconnect()

/***************************資料庫操作***********************************/

//其實所有的資料庫操作都是先寫個sql語句,然後用mysql_query(&mysql,query)來完成,包括建立資料庫或表,增刪改查

//查詢資料

bool querydatabase1()

else

//獲取結果集

if (!(res=mysql_store_result(&mysql))) //獲得sql語句結束後返回的結果集

//列印資料行數

printf("number of dataline returned: %d\n",mysql_affected_rows(&mysql));

//獲取欄位的資訊

char *str_field[32]; //定義乙個字串陣列儲存字段資訊

for(int i=0;i<4;i++) //在已知字段數量的情況下獲取欄位名

for(int i=0;i<4;i++) //列印字段

printf("%10s\t",str_field[i]);

printf("\n");

//列印獲取的資料

while (column = mysql_fetch_row(res)) //在已知字段數量情況下,獲取並列印下一行

return true;

}bool querydatabase2()

else

res=mysql_store_result(&mysql);

//列印資料行數

printf("number of dataline returned: %d\n",mysql_affected_rows(&mysql));

for(int i=0;fd=mysql_fetch_field(res);i++) //獲取欄位名

strcpy(field[i],fd->name);

int j=mysql_num_fields(res); // 獲取列數

for(int i=0;i執行結果:

C API 連線MySQL及批量插入

cmysqlmgr.h ifndef cmysqlmgr h define cmysqlmgr h include include mysql.h using namespace std class cmysqlmgr endif cmysqlmgr.cpp include cmysqlmgr.h ...

在VC6中使用c API方式連線MySQL資料庫

在vc6中使用c api方式連線mysql資料庫 2 設定vc6環境,在vc工具 選項 目錄,加入剛才的include資料夾的路徑,例如 c program files mysql mysql server 5.1 include 二 工程設定 3 將lib資料夾中的linmysql.lib和lib...

利用C API連線資料庫

1.mysql init 初始化mysql結構體 2.mysql real connect mysql mysql,const char host,const char user,const char passwd,const char db,unsigned int port,const char...