• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > dmysql自己封装的mysql库

dmysql自己封装的mysql库

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了dmysql自己封装的mysql库等相关知识,希望本文的分享对您有所帮助

dmysql自己封装的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
#include

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; irow; i++ )
{
for( j=0; jfield; j++ )
{
printf("%s\t", ((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$
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2018-12-05Oracle性能究极优化 上第1/2页
  • 2018-12-05mysql主从服务器配置特殊问题
  • 2018-12-05安装SQL2005 29506错误码的解决方案
  • 2017-05-11分享MySQL的自动化安装部署的方法
  • 2018-12-05详解MAC中mysql密码忘记解决办法的示例代码
  • 2017-05-11mysql优化取随机数据慢的方法
  • 2018-12-05 MongoDB学习笔记《一》
  • 2017-05-11mysql的分区技术详细介绍
  • 2017-05-11MySql .frm数据库文件导入的问题
  • 2017-05-11MySQL中在查询结果集中得到记录行号的方法

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • MSSQL 检查所使用的语句是否符合标准
    • 详解在线上MYSQL同步报错故障处理方法代码总结
    • SQL Server2005下的安全操作技巧分享
    • MySQL数据库如何创建存储过程?
    • MySQL动态创建表,数据分表的存储过程
    • MySQ登录提示ERROR 1045 (28000)错误如何解决
    • 使用innobackupex基于从库搭建mysql主从架构
    • MySQL中slave监控的延迟情况分析
    • IP处理函数inet_aton()和inet_ntoa()使用说明
    • 丢失的数据忘记备份的处理方法[图文]第1/2页

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有