«

dmysql自己封装的mysql库

时间:2024-3-1 22:36     作者:韩俊     分类: Mysql


怎么系统分类里面没有CGI啊?

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

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

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

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;



记录集的数据类型
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;



还有程序运行时候的出错代码
#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个函数
extern int dmysql_query( const char
s_query, const dmysql_info mysql_info );

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


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


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


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

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 : %dn", dmysql_select( &res, s_sql, db ) );
for( i=0; i<res->row; i++ )
{
for( j=0; j<res->field; j++ )
{
printf("%st", ((res->s_row+i)->s_record+j)->s_str );
}
printf( "n" );
}
dmysql_free( res );

return 0;
};




make test后运行./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$

标签: mysql

热门推荐