最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

c語言連接mysql數(shù)據(jù)庫的實現(xiàn)方法

 更新時間:2012年05月05日 00:59:00   投稿:mdxy-dxy  
C語言連接mysql數(shù)據(jù)庫,需要相應(yīng)的頭文件和lib文件,如果你安裝Mysql數(shù)據(jù)庫,會在安裝目錄下找到這些庫文件,如果沒有安裝,也可以在網(wǎng)上找到

我這里也有一份網(wǎng)上找到的:/201205/other/C_link_mySql51.rar
C連接MySql5.1所需文件.rar
附帶一個不錯的例子:

#include <string.h> 
#include <stdlib.h> 
#include <stdio.h> 
#include <winsock2.h> 
#include <mysql/mysql.h>/*注意要包含這個頭文件*/ 
#pragma comment(lib,"libmysql") 
/*定義了一些數(shù)據(jù)庫連接需要的宏*/ 
#define HOST "localhost" 
#define USERNAME "root" 
#define PASSWORD "123456" 
#define DATABASE "test" 
/*這個函數(shù)用來執(zhí)行傳入的sql語句*/ 
void exe_sql(char* sql) { 
MYSQL my_connection; /*這是一個數(shù)據(jù)庫連接*/ 
int res; /*執(zhí)行sql語句后的返回標志*/ 
/*初始化mysql連接my_connection*/ 
mysql_init(&my_connection); 
/*這里就是用了mysql.h里的一個函數(shù),用我們之前定義的那些宏建立mysql連接,并 
返回一個值,返回不為空證明連接是成功的*/ 
if (mysql_real_connect(&my_connection, HOST, USERNAME, PASSWORD, 
DATABASE, 0, NULL, CLIENT_FOUND_ROWS)) {/*連接成功*/ 
printf("數(shù)據(jù)庫執(zhí)行exe_sql連接成功!n"); 
/*這句話是設(shè)置查詢編碼為utf8,這樣支持中文*/ 
mysql_query(&my_connection, "set names utf8"); 
/*下面這句話就是用mysql_query函數(shù)來執(zhí)行我們剛剛傳入的sql語句, 
這會返回一個int值,如果為0,證明語句執(zhí)行成功*/ 
res = mysql_query(&my_connection, sql); 
if (res) {/*現(xiàn)在就代表執(zhí)行失敗了*/ 
printf("Error: mysql_query !\n"); 
/*不要忘了關(guān)閉連接*/ 
mysql_close(&my_connection); 
} else {/*現(xiàn)在就代表執(zhí)行成功了*/ 
/*mysql_affected_rows會返回執(zhí)行sql后影響的行數(shù)*/ 
printf("%d 行受到影響!\n", 
mysql_affected_rows(&my_connection)); 
/*不要忘了關(guān)閉連接*/ 
mysql_close(&my_connection); 
} 
} else { 
/*數(shù)據(jù)庫連接失敗*/ 
printf("數(shù)據(jù)庫執(zhí)行exe_sql連接失?。n"); 
} 
} 
/*這個函數(shù)用來執(zhí)行傳入的sql語句,并打印出查詢結(jié)果*/ 
void query_sql(char* sql) { 
MYSQL my_connection; /*這是一個數(shù)據(jù)庫連接*/ 
int res; /*執(zhí)行sql語句后的返回標志*/ 
MYSQL_RES *res_ptr; /*指向查詢結(jié)果的指針*/ 
MYSQL_FIELD *field; /*字段結(jié)構(gòu)指針*/ 
MYSQL_ROW result_row; /*按行返回的查詢信息*/ 
int row, column; /*查詢返回的行數(shù)和列數(shù)*/ 
int i, j; /*只是控制循環(huán)的兩個變量*/ 
/*初始化mysql連接my_connection*/ 
mysql_init(&my_connection); 
/*這里就是用了mysql.h里的一個函數(shù),用我們之前定義的那些宏建立mysql連接,并 
返回一個值,返回不為空證明連接是成功的*/ 
if (mysql_real_connect(&my_connection, HOST, USERNAME, PASSWORD, 
DATABASE, 0, NULL, CLIENT_FOUND_ROWS)) {/*連接成功*/ 
printf("數(shù)據(jù)庫查詢query_sql連接成功!\n"); 
/*這句話是設(shè)置查詢編碼為utf8,這樣支持中文*/ 
mysql_query(&my_connection, "set names utf8"); 
*下面這句話就是用mysql_query函數(shù)來執(zhí)行我們剛剛傳入的sql語句, 
這會返回一個int值,如果為0,證明語句執(zhí)行成功*/ 
res = mysql_query(&my_connection, sql); 
if (res) { /*現(xiàn)在就代表執(zhí)行失敗了*/ 
printf("Error: mysql_query !\n"); 
/*不要忘了關(guān)閉連接*/ 
mysql_close(&my_connection); 
} else { /*現(xiàn)在就代表執(zhí)行成功了*/ 
/*將查詢的結(jié)果給res_ptr*/ 
res_ptr = mysql_store_result(&my_connection); 
/*如果結(jié)果不為空,就把結(jié)果print*/ 
if (res_ptr) { 
/*取得結(jié)果的行數(shù)和*/ 
column = mysql_num_fields(res_ptr); 
row = mysql_num_rows(res_ptr) + 1; 
printf("查詢到 %lu 行 \n", row); 
/*輸出結(jié)果的字段名*/ 
for (i = 0; field = mysql_fetch_field(res_ptr); i++) 
printf("%st", field->name); 
printf("\n"); 
/*按行輸出結(jié)果*/ 
for (i = 1; i < row; i++) { 
result_row = mysql_fetch_row(res_ptr); 
for (j = 0; j < column; j++) 
printf("%st", result_row[j]); 
printf("\n"); 
} 
} 
/*不要忘了關(guān)閉連接*/ 
mysql_close(&my_connection); 
} 
} 
} 
int main(int argc, char *argv[]) { 
/*測試下向里面插入數(shù)據(jù)*/ 
char *query; 
char *exe = "insert into student values('lala','hahhahah!');"; 
exe_sql(exe); 
*測試下查詢*/ 
query="select * from student;"; 
query_sql(query); 
return 0; 
} 

相關(guān)文章

  • C語言學(xué)生成績管理系統(tǒng)源碼

    C語言學(xué)生成績管理系統(tǒng)源碼

    這篇文章主要為大家詳細介紹了C語言學(xué)生成績管理系統(tǒng)源碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C語言結(jié)構(gòu)體版學(xué)生成績管理系統(tǒng)

    C語言結(jié)構(gòu)體版學(xué)生成績管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言結(jié)構(gòu)體版的學(xué)生成績管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • C++制作《游戲內(nèi)存外掛》詳解

    C++制作《游戲內(nèi)存外掛》詳解

    這篇文章主要介紹了C++制作《游戲內(nèi)存外掛》詳解,文中通過示例代碼和圖片介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • C++ UML類圖的使用解讀

    C++ UML類圖的使用解讀

    這篇文章主要介紹了C++ UML類圖的使用,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-05-05
  • [c++]變量聲明與定義的規(guī)則詳解

    [c++]變量聲明與定義的規(guī)則詳解

    這篇文章主要介紹了[c++]變量聲明與定義的規(guī)則詳解,對于學(xué)習(xí)c++的朋友來說這是一個很細膩的文章,代碼完整,需要的朋友可以參考下
    2021-04-04
  • C語言深入淺出分析函數(shù)指針

    C語言深入淺出分析函數(shù)指針

    函數(shù)指針是一個指針變量,它可以存儲函數(shù)的地址,然后使用函數(shù)指針,下面這篇文章主要給大家介紹了關(guān)于C語言進階教程之函數(shù)指針的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • C++實現(xiàn)LeetCode(174.地牢游戲)

    C++實現(xiàn)LeetCode(174.地牢游戲)

    這篇文章主要介紹了C++實現(xiàn)LeetCode(174.地牢游戲),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C++如何向Lambda傳遞參數(shù)與捕獲

    C++如何向Lambda傳遞參數(shù)與捕獲

    文章介紹了C++中向Lambda表達式傳遞參數(shù)和使用捕獲列表的基本規(guī)則和示例,參數(shù)傳遞要求嚴格匹配類型和數(shù)量,而捕獲列表允許Lambda訪問外部變量,并可以按值或引用捕獲,文章還討論了捕獲的陷阱和解決方案,以及參數(shù)傳遞與捕獲列表的區(qū)別和應(yīng)用場景,感興趣的朋友一起看看吧
    2025-03-03
  • C++ 初始化列表詳解及實例代碼

    C++ 初始化列表詳解及實例代碼

    這篇文章主要介紹了C++ 初始化列表詳解及實例代碼的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • Qt 中開啟線程的多種方式小結(jié)

    Qt 中開啟線程的多種方式小結(jié)

    本篇文章就來整理一下 Qt 中使用線程的五種方式,方便后期回顧。前面兩種比較簡單,一筆帶過了,主要介紹后面三種,感興趣的朋友跟隨小編一起看看吧
    2021-09-09

最新評論

隆回县| 白水县| 安福县| 玉门市| 措美县| 廉江市| 沙河市| 三门峡市| 温泉县| 祁东县| 同心县| 溧水县| 奇台县| 旅游| 昆山市| 石首市| 皋兰县| 饶阳县| 扎兰屯市| 即墨市| 荔浦县| 罗江县| 弥渡县| 安平县| 永宁县| 深圳市| 金湖县| 阳西县| 木兰县| 门源| 德庆县| 建德市| 博湖县| 安溪县| 甘泉县| 绥宁县| 苗栗县| 石屏县| 海丰县| 肃宁县| 新干县|