/*
* MySQLDB.cpp
*
* Created on: 2011-3-18
* Author: root
*/
#include "MySQLDB.h"
MySQLDB::MySQLDB()
{
isConnected = false;
}
void MySQLDB::open(string strHost,string strUser,string strPass,string strDBName,unsigned int port,unsigned long client_flag)
{
if (isConnected)
{
std::cout << "Connected MySQL server." << std::endl;
return;
}
mysql_init(&m_mysql);
if (!mysql_real_connect(&m_mysql,strHost.c_str(),strUser.c_str(),strPass.c_str(),strDBName.c_str(),port,NULL,client_flag))
{
std::cout <<"Connect to mysql server fail:%s\n"<< mysql_error(&m_mysql) << std::endl;
}
isConnected=true;
}
bool MySQLDB::checkDBConnected()
{
return isConnected;
}
/*
*Testing mysql server if it is alive
*return: 0-->success;-1--> fail
*/
int MySQLDB::ping()
{
if (!mysql_ping(&m_mysql))
return 0;
else
return -1;
}
/*
* Support InnoDB or BDB table type
*/
int MySQLDB::startTransaction()
{
if (!mysql_real_query(&m_mysql,"START TRANSACTION", (unsigned long)strlen("START TRANSACTION")))
{
return 0; //success
} else
{
return -1; //fail
}
}
int MySQLDB::commit()
{
if (!mysql_real_query(&m_mysql,"COMMIT", (unsigned long)strlen("COMMIT")))
{
return 0; //success
} else
{
return -1; //fail
}
}
int MySQLDB::rollback()
{
if (!mysql_real_query(&m_mysql,"ROLLBACK", (unsigned long)strlen("ROLLBACK")))
{
return 0; //success
} else
{
return -1; //fail
}
}
int MySQLDB::execute(string sql)
{
if (!isConnected)
{
std::cout<<"Not connect to mysql server."<<std::endl;
return -1;
}
if (sql.empty())
{
std::cout<<"sql statement is null."<<std::endl;
return -1;
}
if (!mysql_real_query(&m_mysql,sql.c_str(),(unsigned int)strlen(sql.c_str())))
{
return (int)mysql_affected_rows(&m_mysql);
}
{
std::cout << "Query fail from database:%s\n" << mysql_error(&m_mysql) << std::endl;
return -1;
}
}
void MySQLDB::close()
{
mysql_close(&m_mysql);
this->isConnected = false;
}
MySQLDB::~MySQLDB() {
// TODO Auto-generated destructor stub
this->close();
}
/*
* Get mysql handler
*/
MYSQL MySQLDB::getMysql() const
{
return m_mysql;
}
mysql C++ API 实现
5星 · 超过95%的资源 需积分: 9 196 浏览量
2011-06-13
23:53:35
上传
评论
收藏 2KB RAR 举报
hugn2000
- 粉丝: 0
- 资源: 1
最新资源
- 基于matlab实现对表面肌电信号进行归一化处理,并对归一化后的图形显示 .rar
- 基于matlab实现单级倒立摆的 T-S 模型 包括 LMI 程序源码
- 图书管理系统(struts+hibernate+spring+ext).rar
- 基于matlab实现此压缩包包含语音信号处理中的语音变声代码加音频.rar
- STM32使用PWM驱动舵机并通过OLED显示
- 基于matlab实现车辆路径规划;遗传算法;matlab代码.rar
- 图书管理系统(struts+hibernate+spring)130225.rar
- 基于matlab实现采用标量衍射理论,实现菲涅尔衍射和夫琅禾费衍射,对光波的波前传播和数字全息的应用有帮助.rar
- JavaScript版去除链表重复元素
- 微信小程序项目-功德木鱼(带设置面板-自定义文字、可选字体颜色、可选木鱼样式)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈