};
/**************************************************************
* @brief:MySQL数据库操作类
* @feature:非线程安全,通常一个线程一个MysqlHelper对象;
* 对于insert/update可以有更好的函数封装,保证SQL注入;
* MysqlHelper::DB_INT表示组装sql语句时,不加””和转义;
* MysqlHelper::DB_STR表示组装sql语句时,加””并转义;
**************************************************************/
class MysqlHelper{
public:
/**
* @brief 构造函数
*/
MysqlHelper();
/**
* @brief 构造函数.
* @param: sHost:主机IP
* @param sUser 用户
* @param sPasswd 密码
* @param sDatebase 数据库
* @param port 端口
* @param iUnixSocket socket
* @param iFlag 客户端标识
*/
MysqlHelper(const string& sHost, const string& sUser = "", const string& sPasswd = "", const string& sDatabase = "", const string &sCharSet = "", int port = 0, int iFlag = 0);
/**
* @brief 构造函数.
* @param tcDBConf 数据库配置
*/
MysqlHelper(const DBConf& tcDBConf);
/**
* @brief 析构函数.
*/
~MysqlHelper();
/**
* @brief 初始化.
*
* @param sHost 主机IP
* @param sUser 用户
* @param sPasswd 密码
* @param sDatebase 数据库
* @param port 端口
* @param iUnixSocket socket
* @param iFlag 客户端标识
* @return 无
*/
void init(const string& sHost, const string& sUser = "", const string& sPasswd = "", const string& sDatabase = "", const string &sCharSet = "", int port = 0, int iFlag = 0);
/**
* @brief 初始化.
*
* @param tcDBConf 数据库配置
*/
void init(const DBConf& tcDBConf);
/**
* @brief 连接数据库.
*
* @throws MysqlHelper_Exception
* @return 无
*/
void connect();
/**
* @brief 断开数据库连接.
* @return 无
*/
void disconnect();
/**
* @brief 获取数据库变量.
* @return 数据库变量
*/
string getVariables(const string &sName);
/**
* @brief 直接获取数据库指针.
*
* @return MYSQL* 数据库指针
*/
MYSQL *getMysql();
/**
* @brief 字符转义.
*
* @param sFrom 源字符串
* @param sTo 输出字符串
* @return 输出字符串
*/
string escapeString(const string& sFrom);