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

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

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

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

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

相關(guān)文章

最新評(píng)論