📄 mysql.cpp
字号:
#include "MySql.h"
CMySql::CMySql()
{
m_bConnect = false;
m_num_field = 0;
m_num_count = 0;
m_query = NULL;
memset(m_mySqlIP,0,100);
memset(m_user,0,100);
memset(m_pass,0,100);
memset(m_sid,0,100);
}
CMySql::~CMySql()
{
if(m_bConnect)
DisConnectDB();
}
/*
* 连接数据库;
*/
bool CMySql::ConnectDB(char *mySqlIP,char *user,char *pass,char *sid)
{
if(m_bConnect == true)
return true;
if (!mysql_init(&m_mysql))
{
printf("mysql_init is err!\n");
return false;
}
if (mysql_real_connect(&m_mysql,mySqlIP,user,pass,sid, 0, NULL, 0) == NULL)
{
printf("mysql_read_connect is err=%s!\n",mysql_error(&m_mysql));
mysql_close(&m_mysql);
return false;
}
strcpy(m_mySqlIP,mySqlIP);
strcpy(m_user,user);
strcpy(m_pass,pass);
strcpy(m_sid,sid);
m_bConnect = true;
return true;
}
/*
* 断开数据库;
*/
void CMySql::DisConnectDB()
{
if(m_bConnect == false)
return;
FreeResult();
mysql_close(&m_mysql);
m_bConnect = false;
}
/*
* 执行数据库sql语句;
*/
bool CMySql::ExecSQL(char *sqlStr)
{
if(m_bConnect == false)
return false;
int ret=mysql_query(&m_mysql,sqlStr);
if(ret)
{
int n_mysql_errno = 0;
n_mysql_errno = mysql_errno(&m_mysql);
printf("ExMySQL : %s\n Exec error : %d,%s\n", sqlStr, n_mysql_errno,mysql_error(&m_mysql));
return false;
}
return true;
}
/*
* 返回SELECT,SHOW,DESCRIBE, EXPLAIN等语句执行的结果。
*/
bool CMySql::StoreResult()
{
if(m_bConnect == false)
return false;
FreeResult();
m_query = mysql_store_result(&m_mysql);
if (m_query)
{
m_num_field = mysql_num_fields(m_query);
m_num_count = mysql_num_rows(m_query);
return true;
}
else
return false;
}
/*
* 获取查询的结果集中的下一条记录;
*/
MYSQL_ROW CMySql::GetNextRow()
{
if(m_bConnect == false)
return NULL;
if(!m_query)
return NULL;
m_row = mysql_fetch_row(m_query);
return m_row;
}
/*
* 移动到数据集的开始;
*/
void CMySql::GotoRowsFirst()
{
if(m_bConnect == false)
return;
if(!m_query)
return;
mysql_data_seek(m_query,0);
}
/*
* 打印查询的记录信息;
*/
void CMySql::PrintRows()
{
if(m_bConnect == false)
return;
if(!m_query)
return;
if(m_num_count > 0)
mysql_data_seek(m_query,0);
while(MYSQL_ROW row = mysql_fetch_row(m_query))
{
for(int i=0;i<m_num_field;i++)
{
printf("%s ",row[i]);
}
printf("\n");
}
printf("_________________________________________________________\n");
printf("Record Count = %d\n",m_num_count);
if(m_num_count > 0)
mysql_data_seek(m_query,0);
}
/*
* 释放查询的数据集的内存资源;
*/
void CMySql::FreeResult()
{
if(m_query != NULL)
{
// m_num_count = mysql_num_rows(m_query);
// if(m_num_count > 0) //数据集当使用后,即使记录个数为0,但是对象存在,需要释放,所以本行判断不需要;2006-3-2 lhf
mysql_free_result(m_query);
m_num_field = 0;
m_num_count = 0;
m_query = NULL;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -