zoukankan      html  css  js  c++  java
  • 为Unrealircd增加Mysql的数据库支持(一)

          其实给Unrealircd增加Mysql数据库的支持的工作还是比较繁琐的,分别需要做编译配置增加,h头文件,mysql操作处理文件,以及操作调用等方面的工作,下面分别做一介绍。
          一、增加mysql操作处理文件
                需要支持mysql数据库的操作,则需要对数据库进行连接,增删改查等操作,对此我已经上传了一个我正在使用的完整的c文件,将由它来完成上面提到的工作。点击这里可以下载。下载后请将其放入unrealircd\src目录下。
          
          二、定义全局连接变量以备调用
          请打开include\h.h文件,在最后增加下面代码:
    extern MODVAR MYSQL *my_conn;
    extern MYSQL *my_mysql_connect();
    extern int my_mysql_insert(MYSQL *my_conn, char *query);
    extern int my_mysql_delete(MYSQL *my_conn, char *query);
    extern int my_mysql_update(MYSQL *my_conn, char *query);
    extern MYSQL_RES *my_mysql_select(MYSQL *my_conn, char *query);
    extern int my_mysql_ping(MYSQL *my_conn);
    extern EVENT(check_mysql_conn);
          其中第一行,定义一个全局的mysql连接变量,因为系统起动,只需要与mysql服务器建立一个连接,而不是在使用mysql的时候再去建立连接,这样效率肯定不高。
          第二行连接mysql的函数,三至六行分别执行mysql的增删改查操作,返回值0成功,非0为不成功,第7行定义一个向mysql连接ping的方法,因为mysql连接在默认的48小时(具体值记不清)无操作后会自动断开,这显然不能满足我们的要求,我们需要的是一个一直不间断的连接,所以我们会定时向mysql服务器发送ping命令,以表示此连接为活动连接,不要断开。最后一行则是向unrealircd添加了一个定时执行的任务方法,它会不间断的定时发送ping命令。
          关于数据库操作的代码已经在上面下载的mysql.c文件中完成。

          为Unrealircd增加Mysql的数据库支持(二)      
  • 相关阅读:
    Codeforces 1291 Round #616 (Div. 2) B
    总结
    刷新DNS解析缓存+追踪+域名解析命令
    数学--数论--Hdu 5793 A Boring Question (打表+逆元)
    Lucene.net(4.8.0) 学习问题记录六:Lucene 的索引系统和搜索过程分析
    LeetCode 117 Populating Next Right Pointers in Each Node II
    LeetCode 116 Populating Next Right Pointers in Each Node
    test test
    LeetCode 115 Distinct Subsequences
    LeetCode 114. Flatten Binary Tree to Linked List
  • 原文地址:https://www.cnblogs.com/taobataoma/p/713403.html
Copyright © 2011-2022 走看看