• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 18,  comments - 2,  trackbacks - 0
              1 #include <mysql.h>/*注意要包含這個(gè)頭文件*/
              2 #include <string.h>
              3 #include <stdlib.h>
              4 #include <stdio.h>
              5 
              6 /*定義了一些數(shù)據(jù)庫(kù)連接需要的宏*/
              7 #define HOST "localhost"
              8 #define USERNAME "ABitNo"
              9 #define PASSWORD "ABitNo"
             10 #define DATABASE "abitno"
             11 
             12 /*這個(gè)函數(shù)用來(lái)執(zhí)行傳入的sql語(yǔ)句*/
             13 void exe_sql(char* sql) {
             14 
             15     MYSQL my_connection; /*這是一個(gè)數(shù)據(jù)庫(kù)連接*/
             16     int res; /*執(zhí)行sql語(yǔ)句后的返回標(biāo)志*/
             17 
             18     /*初始化mysql連接my_connection*/
             19     mysql_init(&my_connection);
             20 
             21     /*這里就是用了mysql.h里的一個(gè)函數(shù),用我們之前定義的那些宏建立mysql連接,并
             22     返回一個(gè)值,返回不為空證明連接是成功的*/
             23     if (mysql_real_connect(&my_connection, HOST, USERNAME, PASSWORD, DATABASE,
             24             0, NULL, CLIENT_FOUND_ROWS)) {/*連接成功*/
             25 
             26         printf("數(shù)據(jù)庫(kù)執(zhí)行exe_sql連接成功!\n");
             27 
             28         /*這句話是設(shè)置查詢編碼為utf8,這樣支持中文*/
             29         mysql_query(&my_connection, "set names utf8");
             30 
             31         /*下面這句話就是用mysql_query函數(shù)來(lái)執(zhí)行我們剛剛傳入的sql語(yǔ)句,
             32         這會(huì)返回一個(gè)int值,如果為0,證明語(yǔ)句執(zhí)行成功*/
             33         res = mysql_query(&my_connection, sql);
             34 
             35         if (res) {/*現(xiàn)在就代表執(zhí)行失敗了*/
             36             printf("Error: mysql_query !\n");
             37             /*不要忘了關(guān)閉連接*/
             38             mysql_close(&my_connection);
             39         } else {/*現(xiàn)在就代表執(zhí)行成功了*/
             40             /*mysql_affected_rows會(huì)返回執(zhí)行sql后影響的行數(shù)*/
             41             printf("%d 行受到影響!\n\n", mysql_affected_rows(&my_connection));
             42             /*不要忘了關(guān)閉連接*/
             43             mysql_close(&my_connection);
             44         }
             45 
             46     } else {
             47         /*數(shù)據(jù)庫(kù)連接失敗*/
             48         printf("數(shù)據(jù)庫(kù)執(zhí)行exe_sql連接失敗!\n");
             49     }
             50 }
             51 
             52 /*這個(gè)函數(shù)用來(lái)執(zhí)行傳入的sql語(yǔ)句,并打印出查詢結(jié)果*/
             53 void query_sql(char* sql) {
             54     MYSQL my_connection; /*這是一個(gè)數(shù)據(jù)庫(kù)連接*/
             55     int res; /*執(zhí)行sql語(yǔ)句后的返回標(biāo)志*/
             56     MYSQL_RES *res_ptr; /*指向查詢結(jié)果的指針*/
             57     MYSQL_FIELD *field; /*字段結(jié)構(gòu)指針*/
             58     MYSQL_ROW result_row; /*按行返回的查詢信息*/
             59 
             60     int row, column; /*查詢返回的行數(shù)和列數(shù)*/
             61     int i, j; /*只是控制循環(huán)的兩個(gè)變量*/
             62 
             63     /*初始化mysql連接my_connection*/
             64     mysql_init(&my_connection);
             65 
             66     /*這里就是用了mysql.h里的一個(gè)函數(shù),用我們之前定義的那些宏建立mysql連接,并
             67     返回一個(gè)值,返回不為空證明連接是成功的*/
             68     if (mysql_real_connect(&my_connection, HOST, USERNAME, PASSWORD, DATABASE,
             69             0, NULL, CLIENT_FOUND_ROWS)) {/*Connection success*/
             70 
             71         printf("數(shù)據(jù)庫(kù)查詢query_sql連接成功!\n");
             72 
             73         /*這句話是設(shè)置查詢編碼為utf8,這樣支持中文*/
             74         mysql_query(&my_connection, "set names utf8");
             75 
             76         /*下面這句話就是用mysql_query函數(shù)來(lái)執(zhí)行我們剛剛傳入的sql語(yǔ)句,
             77         這會(huì)返回一個(gè)int值,如果為0,證明語(yǔ)句執(zhí)行成功*/
             78         res = mysql_query(&my_connection, sql);
             79 
             80         if (res) { /*現(xiàn)在就代表執(zhí)行失敗了*/
             81             printf("Error: mysql_query !\n");
             82             /*不要忘了關(guān)閉連接*/
             83             mysql_close(&my_connection);
             84         } else { /*現(xiàn)在就代表執(zhí)行成功了*/
             85             /*將查詢的結(jié)果給res_ptr*/
             86             res_ptr = mysql_store_result(&my_connection);
             87 
             88             /*如果結(jié)果不為空,就把結(jié)果print*/
             89             if (res_ptr) {
             90                 /*取得結(jié)果的行數(shù)和*/
             91                 column = mysql_num_fields(res_ptr);
             92                 row = mysql_num_rows(res_ptr) + 1;
             93                 printf("查詢到 %lu 行 \n", row);
             94 
             95                 /*輸出結(jié)果的字段名*/
             96                 for (i = 0; field = mysql_fetch_field(res_ptr); i++)
             97                     printf("%s\t", field->name);
             98                 printf("\n");
             99 
            100                 /*按行輸出結(jié)果*/
            101                 for (i = 1; i < row; i++) {
            102                     result_row = mysql_fetch_row(res_ptr);
            103                     for (j = 0; j < column; j++)
            104                         printf("%s\t", result_row[j]);
            105                     printf("\n");
            106                 }
            107 
            108             }
            109 
            110             /*不要忘了關(guān)閉連接*/
            111             mysql_close(&my_connection);
            112         }
            113     }
            114 }
            115 
            116 int main(int argc, char *argv[]) {
            117     /*測(cè)試下向里面插入數(shù)據(jù)*/
            118     char *exe = "insert into abitno values('ABitNo','http://ABitNo.LinPie.com');";
            119     exe_sql(exe);
            120 
            121     /*測(cè)試下查詢*/
            122     char *query = "select * from abitno;";
            123     query_sql(query);
            124 
            125     return 0;
            126 }

            轉(zhuǎn)載自:
            http://abitno.linpie.com/linux-c-connect-mysql.html

            posted on 2009-05-23 21:05 xuejzt 閱讀(4633) 評(píng)論(1)  編輯 收藏 引用 所屬分類: C++

            FeedBack:
            # re: C語(yǔ)言連接Mysql數(shù)據(jù)庫(kù)
            2009-06-06 11:43 | ABitNo
            至少要說(shuō)一下轉(zhuǎn)載的位置
            http://abitno.linpie.com/linux-c-connect-mysql.html  回復(fù)  更多評(píng)論
              

            <2025年8月>
            272829303112
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            常用鏈接

            留言簿(1)

            隨筆分類

            隨筆檔案

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            亚洲精品NV久久久久久久久久| 久久久午夜精品| 国产AⅤ精品一区二区三区久久| 色综合合久久天天综合绕视看 | 久久免费视频观看| 久久久久18| 天天躁日日躁狠狠久久| 欧美777精品久久久久网| 欧美亚洲国产精品久久久久| 久久综合给合久久狠狠狠97色69| 国产精品成人久久久久久久| 亚洲国产精品成人久久| 国产99久久九九精品无码| 久久99国产精品久久99小说| 久久久国产精品网站| 亚洲精品无码久久久影院相关影片| 久久国产精品一区二区| 亚洲中文久久精品无码| 伊人久久大香线蕉成人| 国产成人99久久亚洲综合精品| 久久久久久毛片免费播放| 三级韩国一区久久二区综合| 热久久这里只有精品| 欧美黑人激情性久久| 久久www免费人成看国产片| 久久久免费精品re6| 久久人人爽人人人人爽AV | 久久久久成人精品无码中文字幕| 亚洲国产精品婷婷久久| 99久久久国产精品免费无卡顿| 久久热这里只有精品在线观看| 精品久久久久久久中文字幕| 精品国产一区二区三区久久| 97久久超碰国产精品旧版| 亚洲乱码中文字幕久久孕妇黑人| 久久精品国产一区二区| 精品国产综合区久久久久久 | 欧美一级久久久久久久大| 久久精品国产一区二区电影| 久久综合九色综合久99| 国产精品成人99久久久久 |