#define CMySql_h__
#define WIN32_LEAN_AND_MEAN //for winsock2.h
#include '
#include "mysql.h"
#include '
#include '
#pragma comment(lib, "libmySQL.lib")
#pragma comment(lib, "ws2_32.lib")
#define DB_HOST "localhost"
#define DB_USER "jihyunsim"
#define DB_PWD "password"
#define DB_NAME "database"
#define CMYSQL CMySql::Get()
class CMySql
{
public:
CMySql();
~CMySql();
bool Init(const char* _host,const char* _user,const char* _pwd,const char* _schema);
static CMySql* Get(){return &ms_cMySql;}
int InsertRecord(const char* _table, const char* _field,const char* _value);
int Select(void* _data,const char* _query);
int ExecuteQueryString(const char*);
MYSQL_RES* GetResult();
void FreeResult(MYSQL_RES* );
protected:
private:
MYSQL * m_psConnection;
MYSQL m_sConn;
bool m_bConnected;
static CMySql ms_cMySql;
};
#endif // CMySql_h__
CMySql.cpp
#include "Application.h"
#include "CMySql.h"
CMySql CMySql::ms_cMySql;
CMySql::CMySql():m_psConnection(NULL),m_bConnected(false)
{
mysql_init(&m_sConn);
Init(DB_HOST,DB_USER,DB_PWD,DB_NAME);
}
CMySql::~CMySql()
{
if(m_psConnection!=NULL)
{
mysql_close(m_psConnection);
Log("------------------------------------------------------------\n");
Log(" * Mysql closed \n");
Log("------------------------------------------------------------\n");
}
}
bool CMySql::Init( const char* _host,const char* _user,const char* _pwd,const char* _schema )
{
// DB 연결
m_psConnection = mysql_real_connect(&m_sConn, _host,
_user, _pwd,_schema, 3306,(char *)NULL, 0);
if(m_psConnection==NULL)
{
Log(" * Mysql connection error : %s \n", mysql_error(&m_sConn));
return false;
}
Log("------------------------------------------------------------\n");
Log(" * Mysql connected : host(%s), schema(%s) \n", _host,_schema);
Log("------------------------------------------------------------\n");
m_bConnected=true;
return true;
}
int CMySql::InsertRecord( const char* _table, const char* _field,const char* _value )
{
int query_stat;
char query[512];
sprintf(query,"INSERT INTO `%s` (%s) VALUE ( %s );",_table,_field,_value);
query_stat=mysql_query(m_psConnection,query);
if (0!=query_stat)
{
Log(" * Mysql query error : %s \n", mysql_error(&m_sConn));
return 1;
}
return 0;
}
int CMySql::Select( void* _data,const char* _query )
{
int fieldNo,i;
int query_stat;
MYSQL_RES *sql_result;
MYSQL_ROW sql_row;
query_stat=mysql_query(m_psConnection,_query);
if (0!=query_stat)
{
Log(" * Mysql query error : %s \n", mysql_error(&m_sConn));
return 1;
}
sql_result=mysql_store_result(m_psConnection);
while((sql_row=mysql_fetch_row(sql_result))!=NULL)
{
printf("* ");
fieldNo=mysql_num_fields(sql_result);
for(i=0;i
{
printf("%s ",sql_row[i]);
//_data++=*sql_row[i]++;
}
printf("\n");
}
mysql_free_result(sql_result);
return 0;
}
int CMySql::ExecuteQueryString( const char* _query)
{
int query_stat;
query_stat=mysql_query(m_psConnection,_query);
if (query_stat!=0)
{
Log(" * Mysql query error : %s \n", mysql_error(&m_sConn));
return 1;
}
return 0;
}
MYSQL_RES* CMySql::GetResult()
{
MYSQL_RES *sql_result;
sql_result=mysql_store_result(m_psConnection);
return sql_result;
}
void CMySql::FreeResult( MYSQL_RES* sql_result)
{
ASSERT(sql_result);
mysql_free_result(sql_result);
}
//수정과 보완이 많이 필요한 것이다..
댓글 없음:
댓글 쓰기