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

dmysql自己封裝的mysql庫(kù)

 更新時(shí)間:2007年07月21日 00:00:00   作者:  
怎么系統(tǒng)分類里面沒(méi)有CGI?。?

最近好久沒(méi)有發(fā)原創(chuàng)文章了,都在架構(gòu)服務(wù)器,編寫(xiě)CGI程序
開(kāi)頭用了些天perl,后來(lái)發(fā)現(xiàn)對(duì)腳本語(yǔ)言尤其是特別牛X的正則表達(dá)式有些看不懂...
回頭用C語(yǔ)言寫(xiě)高效率的吧,反正我自己寫(xiě)過(guò)好些C的庫(kù)了...

下面貼一個(gè)mysql的庫(kù),叫做dmysql
解壓縮以后,make ; make install 安裝
然后編譯程序的時(shí)候,包含dmysql.h頭文件,加上 -ldmysql標(biāo)識(shí),即可

頭里面定義了一個(gè)mysql數(shù)據(jù)庫(kù)的結(jié)構(gòu)體,

typedef struct _dmysql_info
{
     char *host; /*host for database*/
     char *user; /*user name for database*/
     char *pswd; /*password to the account*/
     char *dbbs; /*name of database*/
} dmysql_info;



記錄集的數(shù)據(jù)類型
typedef struct _dmysql_record
{
     char *s_str;
} dmysql_record;


typedef struct _dmysql_row
{
     dmysql_record *s_record;
} dmysql_row;


typedef struct _d_mysql_res
{
     int row;
     int field;
     dmysql_row *s_row;
} dmysql_res;



還有程序運(yùn)行時(shí)候的出錯(cuò)代碼
#define DMYSQL_QUERY_OKAY 0
#define DMYSQL_SELECT_OKAY 0
#define DMYSQL_CONNECT_ERROR -1
#define DMYSQL_INIT_ERROR -2
#define DMYSQL_QUERY_ERROR -3
#define DMYSQL_RES_ERROR -4




程序一共就3個(gè)函數(shù)
extern int dmysql_query( const char * s_query, const dmysql_info mysql_info );

給出一句執(zhí)行的SQL命令,比如UPDATE、INSERT,指定一個(gè)數(shù)據(jù)庫(kù),就可以了


extern int dmysql_select( dmysql_res **rel_res, const char *s_select, const dmysql_info mysql_info );


傳入一個(gè)數(shù)據(jù)庫(kù)記錄集的地址,給出一個(gè)SELECT記錄的SQL命令,再制定一個(gè)數(shù)據(jù)庫(kù),就可以了


用來(lái)釋放內(nèi)存中在棧里面申明了的記錄集空間

extern void dmysql_free( dmysql_res *res );



下面是演示的程序代碼:
#include <stdio.h>
#include <dmysql.h>

int main( void )
{
    dmysql_info db;
    db.host="127.0.0.1"; /*host for database*/
    db.user="root"; /*user name for database*/
    db.pswd=""; /*password to the account*/
    db.dbbs="mysql"; /*name of database*/

    char *s_query="GRANT ALL ON *.* to 'dorainm'@'127.0.0.1' IDENTIFIED BY '******';";
    char *s_sql="SELECT `user`,`host`,`password` FROM `user`;";

    int i, j;
    dmysql_res *res;

    dmysql_query( s_query, db );


    printf( "select out : %d\n", dmysql_select( &res, s_sql, db ) );
    for( i=0; i<res->row; i++ )
    {
        for( j=0; j<res->field; j++ )
        {
            printf("%s\t", ((res->s_row+i)->s_record+j)->s_str );
        }
        printf( "\n" );
    }
    dmysql_free( res );

    return 0;
};

 


make test后運(yùn)行./dmysql

dorainm@desktop:~/workroom/c/mylib/dmysql$ make test gcc -Wall -O3 -o dmysql main.c -ldmysql `mysql_config --libs` `mysql_config --cflags` dorainm@desktop:~/workroom/c/mylib/dmysql$ ./dmysql

select out : 5
root localhost %^$#!@%*&!
root desktop.dorainm.org %^$#!@%*&! 
 desktop.dorainm.org %^$#!@%*&! 
 localhost %^$#!@%*&!
dorainm 127.0.0.1 %^$#!@%*&! dorainm@desktop:~/workroom/c/mylib/dmysql$ 

相關(guān)文章

最新評(píng)論

晋州市| 江口县| 治县。| 阿坝| 宁化县| 湘潭市| 稷山县| 丹凤县| 肃宁县| 海阳市| 呼伦贝尔市| 福安市| 甘泉县| 睢宁县| 巨野县| 三亚市| 绥中县| 慈利县| 咸丰县| 金堂县| 额敏县| 右玉县| 淳安县| 吴江市| 开鲁县| 湘西| 苏尼特右旗| 潮安县| 思茅市| 青铜峡市| 额尔古纳市| 肇东市| 镇江市| 都匀市| 左贡县| 南木林县| 吴堡县| 盐边县| 重庆市| 昆山市| 鹿泉市|