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 实验前提:大部分软件使用编译安装,请提前准备好编 ...
随机推荐
- django 导入数据库
python manage .py makemigrations appname python manage.py migrate
- Jmeter(三十九)获取响应结果中参数出现的次数(转载)
转载自 http://www.cnblogs.com/yangxia-test 在测试中,有时候会遇到要统计响应结果中某个参数出现了多少次,如果量级很大,一个一个数不太现实,下面讲一下实现自动打印出该 ...
- error LNK2019: 无法解析的外部符号 "class std::basic_ostream<char,struct std::char_traits<char> >
1,VS2013: 错误 1 error LNK2019: 无法解析的外部符号 "class std::basic_ostream<char,struct std::char_trai ...
- zabbix 自定义监控 排除带报错提示
UserParameter=lq_data_sqoop,/usr/local/bin/sqoop.sh 2>/dev/null |awk '{print $2}' 注意:2>/dev/n ...
- elk6快速安装
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch [elasticsearch-6.x] name=Elasticsear ...
- 在timer的时候突然改变影片简介,先前的不暂停
import flash.display.MovieClip; import flash.utils.Timer; import flash.events.TimerEvent; var hinder ...
- Devexpress Gridview 自定义汇总CustomSummaryCalculate(加权平均)
Devexpress Gridview 提供了简单的求和,平均等方法,复杂的汇总方法则需要自定义,使用gridview 的CustomSummaryCalculate 事件,根据官网的文档及各论坛案例 ...
- Android 性能测试之内存 --- 追加腾讯性能案例,安卓抓取性能扫盲帖
内存测试: 思路 目前做的是酒店APP,另下载安装几个个第三方酒店的APP以方便对比(相当于可以做竞品测试) 数据的获取来源是ADB底层命令,而且最好是不需要root权限,因为很多手机root很麻烦或 ...
- 17. Letter Combinations of a Phone Number (backtracking)
Given a digit string, return all possible letter combinations that the number could represent. A map ...
- Mysql的随机抽取
方法一 SELECT * FROM SHARE ORDER BY RAND( ) LIMIT 1; 在MYSQL的官方手册,里面针对RAND()的提示大概意思就是,在ORDER BY从句里面不能使用R ...