欢迎来到福编程网,本站提供各种互联网专业知识!
您的位置:网站首页 > 数据库 > Mysql

dmysql自己封装的mysql库

发布时间:2007-07-21 作者: 来源:转载
怎么系统分类里面没有CGI啊?最近好久没有发原创文章了,都在架构服务器,编写CGI程序开头用了些天perl,后来发现对脚本语言尤其是特别牛X的正则表达式有些看不懂...回头用C语言写高效率的吧,反正我自己写过好些C的库了...下面贴一个mysql的库,叫做dmysql解
怎么系统分类里面没有CGI啊?

最近好久没有发原创文章了,都在架构服务器,编写CGI程序
开头用了些天perl,后来发现对脚本语言尤其是特别牛X的正则表达式有些看不懂...
回头用C语言写高效率的吧,反正我自己写过好些C的库了...

下面贴一个mysql的库,叫做dmysql
解压缩以后,make;makeinstall安装
然后编译程序的时候,包含dmysql.h头文件,加上-ldmysql标识,即可

头里面定义了一个mysql数据库的结构体,

typedefstruct_dmysql_info
{
char*host;/*hostfordatabase*/
char*user;/*usernamefordatabase*/
char*pswd;/*passwordtotheaccount*/
char*dbbs;/*nameofdatabase*/
}dmysql_info;

记录集的数据类型
typedefstruct_dmysql_record
{
char*s_str;
}dmysql_record;


typedefstruct_dmysql_row
{
dmysql_record*s_record;
}dmysql_row;


typedefstruct_d_mysql_res
{
introw;
intfield;
dmysql_row*s_row;
}dmysql_res;

还有程序运行时候的出错代码
#defineDMYSQL_QUERY_OKAY0
#defineDMYSQL_SELECT_OKAY0
#defineDMYSQL_CONNECT_ERROR-1
#defineDMYSQL_INIT_ERROR-2
#defineDMYSQL_QUERY_ERROR-3
#defineDMYSQL_RES_ERROR-4


程序一共就3个函数
externintdmysql_query(constchar*s_query,constdmysql_infomysql_info);

给出一句执行的SQL命令,比如UPDATE、INSERT,指定一个数据库,就可以了


externintdmysql_select(dmysql_res**rel_res,constchar*s_select,constdmysql_infomysql_info);


传入一个数据库记录集的地址,给出一个SELECT记录的SQL命令,再制定一个数据库,就可以了


用来释放内存中在栈里面申明了的记录集空间

externvoiddmysql_free(dmysql_res*res);

下面是演示的程序代码:
#include
#include

intmain(void)
{
dmysql_infodb;
db.host="127.0.0.1";/*hostfordatabase*/
db.user="root";/*usernamefordatabase*/
db.pswd="";/*passwordtotheaccount*/
db.dbbs="mysql";/*nameofdatabase*/

char*s_query="GRANTALLON*.*to'dorainm'@'127.0.0.1'IDENTIFIEDBY'******';";
char*s_sql="SELECT`user`,`host`,`password`FROM`user`;";

inti,j;
dmysql_res*res;

dmysql_query(s_query,db);


printf("selectout:%dn",dmysql_select(&res,s_sql,db));
for(i=0;irow;i++)
{
for(j=0;jfield;j++)
{
printf("%st",((res->s_row+i)->s_record+j)->s_str);
}
printf("n");
}
dmysql_free(res);

return0;
};


maketest后运行./dmysql

dorainm@desktop:~/workroom/c/mylib/dmysql$maketestgcc-Wall-O3-odmysqlmain.c-ldmysql`mysql_config--libs``mysql_config--cflags`dorainm@desktop:~/workroom/c/mylib/dmysql$./dmysql

selectout:5
rootlocalhost%^$#!@%*&!
rootdesktop.dorainm.org%^$#!@%*&!
desktop.dorainm.org%^$#!@%*&!
localhost%^$#!@%*&!
dorainm127.0.0.1%^$#!@%*&!dorainm@desktop:~/workroom/c/mylib/dmysql$

相关推荐