mysql.lib 的使用
一 说明
mysql.lib 提供了很多方便的操作,同时结合 vector 使用十分方便。
二 使用
1 声明需要用到的变量
static MYSQL s_mysql[DATABASE_CONNECTION_NUM];
static char mysql_user[50]="root";
static char mysql_password[50]="";
2 初始化数据库连接
初始化连接过程中,根据自己的需要,是否有包含中文字符,设置数据库的属性。
1 bool InitDBConnetion()
2 {
3 int i = 0;
4 bool bOK = false;
5
6 for(i = 0;i < DATABASE_CONNECTION_NUM;i++)
7 {
8 mysql_init(&s_mysql[i]);
9 mysql_options(&s_mysql[i], MYSQL_SET_CHARSET_NAME, "utf8");
10
11 if(NULL == mysql_real_connect(&s_mysql[i], "localhost", mysql_user, mysql_password, DB_NAME, DB_PORT, NULL, 0))
12 {
13 printf("Failed to connect to database: Error: %s\n", mysql_error(&s_mysql[i]));
14 break;
15 }
16 }
17
18 if(i < DATABASE_CONNECTION_NUM)
19 {
20 CloseDBConnection();
21 }
22 else
23 {
24 bOK = true;
25 }
26
27 return bOK;
28 }
29
3 查询并保存结果
1 typedef struct
2 {
3 char chGroupName[256];
4 unsigned char uchGroupInternalId[4];
5 unsigned char uchGroupMemberNum[3];
6
7 }GROUP_INFO;
1 static int GetUserGroupInfo(vector<GROUP_INFO> &vGroup, MYSQL *pMySqlConnection)
2 {
3 int groupNum = 0;
4 MYSQL_RES *pResult = NULL;
5 do
6 {
7 char chSql[1024] ={0};
8 sprintf(chSql, "select group_id,group_name from `cloudsoarmanage`.`user_group`");
9 if (0 != mysql_query(pMySqlConnection,chSql))
10 {
11 break;
12 }
13
14 pResult = mysql_store_result(pMySqlConnection);
15 if (NULL == pResult)
16 {
17 break;
18 }
19
20 MYSQL_ROW sql_row;
21 int groupId = 0;
22 while (sql_row = mysql_fetch_row(pResult))
23 {
24 GROUP_INFO info = {0};
25 strcpy(info.chGroupName, sql_row[1]);
26 groupId = atoi(sql_row[0]);
27 info.uchGroupInternalId[0] = groupId & 0xFF;
28 info.uchGroupInternalId[1] = (groupId>>8) & 0xFF;
29 info.uchGroupInternalId[2] = (groupId>>16) & 0xFF;
30 info.uchGroupInternalId[3] = (groupId>>24) & 0xFF;
31 vGroup.push_back(info);
32 ++groupNum;
33 }
34
35 } while (0);
36
37 if (NULL != pResult)
38 {
39 mysql_free_result(pResult);
40 }
41
42 return groupNum;
43 }
1 void CloseDBConnection()
2 {
3 int i = 0;
4
5 for(i = 0; i < DATABASE_CONNECTION_NUM; i++)
6 {
7 mysql_close(&s_mysql[i]);
8 }
9 }
mysql.lib 的使用的更多相关文章
- 【Python MySQLdb】Library not loaded: /usr/local/mysql/lib/libmysqlclient.20.dylib解决办法
使用MySQLdb遇到以下错误 ImportError: dlopen(/Users/jackey/Documents/Xiaomi/Code/wda_python/lib/python2./site ...
- node.js报错throw err; // Rethrow non-MySQL errors e:\serverTest\node_modules\mysql\lib\protocol\Parser.js:79 解决方法
今天在用node+angular做后台时,需要使用session保存登陆状态的时候,遇到了此问题,问题直译为非mysql问题,我也在后台取到的登陆用户名和密码,确实不是数据库问题.最后发现在使用ses ...
- mysql源码包手动安装、配置以及测试(亲测可行)
笔记编者:小波/qq463431476博客首页:http://www.cnblogs.com/xiaobo-Linux/ 记下这篇mysql笔记,望日后有用! redhat6采用centos yum源 ...
- linux Mysql 安装及配置
1.准备 cmake-3.6.0.tar.gz bison-3.0.4.tar.gz mysql-5.7.13.tar.gz (http://dev.mysql.com/get/Downloads/M ...
- CentOS 7 安装MySQL 5.6遇到的疑难杂症小结
在一测试服务器(CentOS Linux release 7.2.1511)上安装MySQL 5.6(5.6.19 MySQL Community Server)时遇到下面错误,这个是因为CentOS ...
- [MySQL Reference Manual] 18 复制
18 复制 18 复制 18.1 复制配置 18.1.1 基于Binary Log的数据库复制配置 18.1.2 配置基于Binary log的复制 18.1.2.1 设置复制master的配置 18 ...
- mysql 5.6.24安装实例
安装前准备工作: 1)编辑PATH路径 vim /etc/profile PATH=/home/mysql/bin:/home/mysql/lib:$PATH export PATH 2)生效PATH ...
- mysql数据库主从及主主复制配置演示
实验系统:CentOS 6.6_x86_64 实验前提:提前准备好编译环境,防火墙和selinux都关闭 实验说明:本实验共有2台主机,IP分配如拓扑 实验软件:mariadb-10.0.20 实验拓 ...
- nginx+php-fpm+mysql分离部署详解
相信大家将这三者部署到同一台主机应该已经不陌生了,今天在这里,给大家演示一下如何将三者部署到三台主机上. 实验系统:CentOS 6.6_x86_64 实验前提:大部分软件使用编译安装,请提前准备好编 ...
随机推荐
- javax.servlet.http.HttpServletResponse.getStatus()I
感谢作者分享:http://blog.csdn.net/szwangdf/article/details/42145463 -------------------------------------- ...
- python--第四天总结
lambda表达式 处理简单函数自动返回 学习条件运算时,对于简单的 if else 语句,可以使用三元运算来表示,即: # 普通条件语句 if 1 == 1: name = 'wupeiqi' el ...
- jquery 动态数字滚动
1.引入jQuery <script src="js/jquery.min.js"></script>2.html <div id="cou ...
- linux防火墙使用以及配置
Centos 7 firewall : 1.firewalld的基本使用 启动: systemctl start firewalld 关闭: systemctl stop firewalld 查看状态 ...
- POJ-3414.Pots.(BFS + 路径打印)
这道题做了很长时间,一开始上课的时候手写代码,所以想到了很多细节,但是创客手打代码的时候由于疏忽又未将pair赋初值,导致一直输出错误,以后自己写代码可以专心一点,可能会在宿舍图书馆或者Myhome, ...
- Codeforces Beta Round #59 (Div. 2)
Codeforces Beta Round #59 (Div. 2) http://codeforces.com/contest/63 A #include<bits/stdc++.h> ...
- Codeforces Beta Round #57 (Div. 2)
Codeforces Beta Round #57 (Div. 2) http://codeforces.com/contest/61 A #include<bits/stdc++.h> ...
- 微信小程序开发——全局配置详细介绍
本文针对官方文档未说明清楚的进行详细探索研究,官方文档详见:全局配置 . pages: 删除页面,需要先删除app.json中pages对应页面的路径,再去删除页面相关的所有文件,不然会出现页面文件混 ...
- 【js语法】array
array操作说明 链接:http://www.w3school.com.cn/jsref/jsref_obj_array.asp 函数说明: concat():把两个array连接起来 join() ...
- Python 安装pyautogui
在Python中使用PyAutoGui模拟键盘和鼠标操作 一.系统环境 操作系统:win10 64位 Python版本:Python 3.7.0 二.安装参考 1.使用pip进行安装,pip inst ...