欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

我這里也有一份網上找到的:/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"); 
/*這句話是設置查詢編碼為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"); 
/*不要忘了關閉連接*/ 
mysql_close(&my_connection); 
} else {/*現(xiàn)在就代表執(zhí)行成功了*/ 
/*mysql_affected_rows會返回執(zhí)行sql后影響的行數(shù)*/ 
printf("%d 行受到影響!\n", 
mysql_affected_rows(&my_connection)); 
/*不要忘了關閉連接*/ 
mysql_close(&my_connection); 
} 
} else { 
/*數(shù)據(jù)庫連接失敗*/ 
printf("數(shù)據(jù)庫執(zhí)行exe_sql連接失??!\n"); 
} 
} 
/*這個函數(shù)用來執(zhí)行傳入的sql語句,并打印出查詢結果*/ 
void query_sql(char* sql) { 
MYSQL my_connection; /*這是一個數(shù)據(jù)庫連接*/ 
int res; /*執(zhí)行sql語句后的返回標志*/ 
MYSQL_RES *res_ptr; /*指向查詢結果的指針*/ 
MYSQL_FIELD *field; /*字段結構指針*/ 
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"); 
/*這句話是設置查詢編碼為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"); 
/*不要忘了關閉連接*/ 
mysql_close(&my_connection); 
} else { /*現(xiàn)在就代表執(zhí)行成功了*/ 
/*將查詢的結果給res_ptr*/ 
res_ptr = mysql_store_result(&my_connection); 
/*如果結果不為空,就把結果print*/ 
if (res_ptr) { 
/*取得結果的行數(shù)和*/ 
column = mysql_num_fields(res_ptr); 
row = mysql_num_rows(res_ptr) + 1; 
printf("查詢到 %lu 行 \n", row); 
/*輸出結果的字段名*/ 
for (i = 0; field = mysql_fetch_field(res_ptr); i++) 
printf("%st", field->name); 
printf("\n"); 
/*按行輸出結果*/ 
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"); 
} 
} 
/*不要忘了關閉連接*/ 
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; 
} 

相關文章

  • Qt+Quick實現(xiàn)圖片演示器的開發(fā)

    Qt+Quick實現(xiàn)圖片演示器的開發(fā)

    這篇文章主要為大家詳細介紹了Qt如何利用Quick實現(xiàn)圖片演示器的開發(fā),文中的示例代碼講解詳細,對我們學習Qt有一定的幫助,需要的可以參考一下
    2023-01-01
  • C++實現(xiàn)簡單學生管理系統(tǒng)

    C++實現(xiàn)簡單學生管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C++實現(xiàn)簡單學生管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C++鏈表類的封裝詳情介紹

    C++鏈表類的封裝詳情介紹

    這篇文章主要介紹了C++鏈表類的封裝,文章基于C++的相關資料展開主題的詳細內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-04-04
  • win32 api實現(xiàn)簡單的消息窗口示例

    win32 api實現(xiàn)簡單的消息窗口示例

    這篇文章主要介紹了使用win32 api實現(xiàn)簡單的消息窗口示例,需要的朋友可以參考下
    2014-03-03
  • C++頭文件algorithm中的函數(shù)功能詳解

    C++頭文件algorithm中的函數(shù)功能詳解

    這篇文章主要介紹了C++頭文件algorithm中的函數(shù)功能詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • SublimeText編譯C開發(fā)環(huán)境設置

    SublimeText編譯C開發(fā)環(huán)境設置

    這篇文章主要介紹了使用SublimeText編譯C代碼的開發(fā)環(huán)境設置,大家參考使用
    2013-11-11
  • cmake跨平臺構建工具的學習筆記

    cmake跨平臺構建工具的學習筆記

    CMake是一個跨平臺的安裝/編譯工具,通過CMake我們可以通過簡單的語句來描述所有平臺的安裝/編譯過程,下面這篇文章主要給大家介紹了關于cmake跨平臺構建工具的相關資料,需要的朋友可以參考下
    2023-02-02
  • C++與Lua協(xié)程交互的示例詳解

    C++與Lua協(xié)程交互的示例詳解

    Lua 語言不支持真正的多線程,即不支持共享內存的搶占式線程,在執(zhí)行協(xié)程體的 Lua 腳本時,Lua 同樣可以調用 C++ 的函數(shù),本文給大家介紹了C++ 與 Lua 的協(xié)程交互,需要的朋友可以參考下
    2024-02-02
  • C語言基礎知識分享續(xù)篇

    C語言基礎知識分享續(xù)篇

    這篇文章主要介紹了C語言基礎知識分享續(xù)篇的相關資料,需要的朋友可以參考下
    2023-01-01
  • 深入Linux grep指令的詳解(實用型)

    深入Linux grep指令的詳解(實用型)

    本篇文章是對Linux下的grep指令進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05

最新評論