zhiye_wang

向星空仰望的越深,越发现自己的渺小

博客园 首页 新随笔 联系 订阅 管理

一 说明
      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 }

  

posted on 2016-02-23 10:00  zhiye_wang  阅读(597)  评论(0编辑  收藏  举报