• <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>

            woaidongmao

            文章均收錄自他人博客,但不喜標(biāo)題前加-[轉(zhuǎn)貼],因其丑陋,見諒!~
            隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
            數(shù)據(jù)加載中……

            怎樣用c/c++編程連接mysql數(shù)據(jù)庫?

            執(zhí)行一個查詢有以下幾個步驟要做。首先執(zhí)行一個查詢,然后保存結(jié)果,  
              得到的是一個子集。這里是一個小例子:  
              #include    
              #include    
              #include   "mysql.h"  
              MYSQL   mysql;  
              MYSQL_RES   *res;  
              MYSQL_ROW   row;  
              void   exiterr(int   exitcode)  
              {  
              fprintf(   stderr,   "%s\n",   mysql_error(&mysql)   );  
              exit(   exitcode   );  
              }  
              int   main()  
              {  
              uint   i   =   0;  
              if   (!(mysql_connect(&mysql,"host","username","password")))    
              exiterr(1);  
              if   (mysql_select_db(&mysql,"payroll"))  
              exiterr(2);  
              if   (mysql_query(&mysql,"SELECT   name,rate   FROM   emp_master"))  
              exiterr(3);  
              if   (!(res   =   mysql_store_result(&mysql)))  
              exiterr(4);  
              while((row   =   mysql_fetch_row(res)))   {  
              for   (i=0   ;   i   <   mysql_num_fields(res);   i++)    
              printf("%s\n",row[i]);  
              }  
              mysql_free_result(res);  
              mysql_close(&mysql);  
              }  
              mysql_query   函數(shù)將把查詢送給服務(wù)器,如果查詢成功,調(diào)用mysql_store_result  
              函數(shù)將分配一個MYSQL_RES   結(jié)構(gòu)并且重新從服務(wù)器獲得一個結(jié)果集。你可以用    
              mysql_fetch_row   函數(shù)來查看數(shù)據(jù)。這樣做你將獲得一個   MYSQL_ROW   指針指向數(shù)  
              據(jù)中的一行。   MYSQL_ROW   指針是一簡單的字符串?dāng)?shù)組。所有的數(shù)據(jù)類型被轉(zhuǎn)換成  
              字符串送到客戶端。  
              mysql_num_fields   函數(shù)將告訴你返回的列數(shù)。你可以繼續(xù)調(diào)用   mysql_fetch_row  
              直到它返回一個空指針以得到查詢中的每一行。  
              注意在這個例子里,我們沒有檢查有空指針的列。如果你不使用非空列的表,那么  
              你必須檢查一個特殊行的列是否為空。  
              一旦你使用完畢一個結(jié)果集,你必須釋放它。這通過   mysql_free_result   來完成。  
              最后調(diào)用   mysql_close   來關(guān)閉你和數(shù)據(jù)庫之間的連接。  
              查看結(jié)果集  
              你可以不用調(diào)用   mysql_fetch_row   就查出返回的結(jié)果集共有多少行。這由  
              int   mysql_num_rows(MYSQL_RES   *result)來完成。  
              改變到被下一個   mysql_fetch_row   調(diào)用返回的行,你可以用    
              void   mysql_data_seek(MYSQL_RES   *res,   uint   offset)   改變到任意一行。  
              獲得更多的信息  
              你可以使用這幾個額外的函數(shù)來找出關(guān)于一個查詢的更多的信息,并從服務(wù)器獲得  
              這些信息。  
              如果你執(zhí)行一個UPDATE,   INSERT   或者   DELETE   查詢,你可以用    
              int   mysql_affected_rows   來查出共有多少行數(shù)據(jù)被你影響到。  
              如果在你的數(shù)據(jù)庫里有二進(jìn)制數(shù)據(jù),那么得知數(shù)據(jù)的長度將是有用的。unsigned    
              int   *mysql_fetch_lengths(MYSQL_RES   *mysql)   將返回一指出了結(jié)果集中每一列  
              的長度的整型數(shù)組。  
              當(dāng)你插入一個帶有   AUTO_INCREMENT   列的表的時候,你可以用    
              int   mysql_insert_id(MYSQL   *mysql)   來查出生成的那一行的ID。  
            ======================
            我連過成功了!  
              #include   "/include/mysql/mysql.h"   /*為絕對路徑*/    
              #include   <stdio.h>    
              int   main(int   argc,char   *argv[])    
              {    
              char   *user   =   "root",   *pwd   =   "mysql",   *dbname   =   "mysql";    
              MYSQL   mysql;    
              MYSQL_RES   *mysql_ret;    
              MYSQL_ROW   mysql_row;    
              unsigned   long   num_rows;    
              int   ret;    
              mysql_init(&mysql);    
              if(mysql_real_connect(&mysql,NULL,user,pwd,dbname,0,NULL,0))    
              {    
              printf("Connection   success!\n");    
              ret   =   mysql_query(&mysql,"select   *   from   user");    
              if(!ret)    
              {    
              printf("Query   Success!\n");    
              mysql_ret   =   mysql_store_result(&mysql);    
              if(mysql_ret   !=   NULL)    
              {    
              printf("Store   Result   Success!\n");    
              num_rows   =   mysql_num_rows(mysql_ret);    
              if(num_rows   !=   0)    
              {    
              printf("%d\n",num_rows);    
              while(mysql_row   =   mysql_fetch_row(mysql_ret))    
              {    
              printf("%s\t%s\t%s\t%s\t%s\t%s\n",mysql_row[0],mysql_row[1],mysql_row[2],mysql_row[3],mysql_row[4],mysql_row[5]);    
              }    
              }    
              else    
              {    
              printf("mysql_num_rows   Failed!\n");    
              exit(-1);    
              }    
              mysql_free_result(mysql_ret);    
              exit(0);    
              }    
              else    
              {    
              printf("Store   Result   Failed!\n");    
              exit(-1);    
              }    
              }    
              else    
              {    
              printf("Query   Failed!\n");    
              exit(-1);    
              }    
              }    
              else    
              {    
              printf("Connection   Failed\n");    
              exit(-1);    
              }    
              }    
              如果你包含了正確的頭文件而在連接的時候,   告訴你沒有符號連接    
              你應(yīng)該連接你需要的庫    
              我的/lib/mysql/libmysqlclient.so下面    
              gcc   -L/lib/mysql   -lmysqlclient   -o   tes   tes.c   進(jìn)行編譯  

            posted on 2008-05-27 18:19 肥仔 閱讀(3784) 評論(1)  編輯 收藏 引用 所屬分類: C++ 基礎(chǔ)

            評論

            # re: 怎樣用c/c++編程連接mysql數(shù)據(jù)庫?  回復(fù)  更多評論   

            玫琳凱產(chǎn)品客戶意見
            2010-08-25 10:03 | wanghaolian
            国产成人久久AV免费| 亚洲精品无码久久不卡| 久久免费国产精品一区二区| 久久精品人人做人人爽电影| 精品久久久久久无码中文字幕| 中文字幕精品无码久久久久久3D日动漫| 国产精品中文久久久久久久 | 久久精品国产精品亚洲人人| 手机看片久久高清国产日韩| 精品久久久久久久久午夜福利| 九九热久久免费视频| 久久精品蜜芽亚洲国产AV| 国产精品美女久久久久av爽| 精品国产乱码久久久久久呢| 丁香久久婷婷国产午夜视频| 亚洲AV无码久久精品蜜桃| 国产91久久综合| 久久久久99精品成人片直播| 亚洲人成网站999久久久综合| 久久夜色精品国产亚洲| 亚洲精品乱码久久久久久久久久久久| 国内精品欧美久久精品| 91精品国产91久久久久福利| 国色天香久久久久久久小说| 欧美麻豆久久久久久中文| 久久99精品久久只有精品| 狠狠色噜噜色狠狠狠综合久久| 久久天天躁狠狠躁夜夜2020| 国产亚州精品女人久久久久久 | 久久免费看黄a级毛片| 久久青青草原亚洲av无码| 欧美777精品久久久久网| 国产精品无码久久综合 | 久久ZYZ资源站无码中文动漫| 性做久久久久久久久| 精品国产综合区久久久久久 | 亚洲欧美国产日韩综合久久| 欧美久久久久久午夜精品| 久久久久99精品成人片| 久久久久这里只有精品| 色婷婷噜噜久久国产精品12p|