1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
/*! \file mg_database.c
* \brief A capsule around MySql database access
*
* \version $Revision: 1.2 $
* \date $Date$
* \author Ralf Klueber, Lars von Wedel, Andreas Kellner
* \author file owner: $Author$
*/
#include "mg_database.h"
#include "mg_tools.h"
#include <stdarg.h>
static const int MAX_QUERY_BUFLEN = 2048;
mgDB::mgDB()
{
}
mgDB::mgDB(std::string host, std::string name,
std::string user, std::string pass,
int port)
{
}
mgDB::~mgDB()
{
}
MYSQL mgDB::getDBHandle()
{
return m_dbase;
}
std::string mgDB::escape_string( MYSQL *db, std::string s )
{
char *escbuf = (char *) malloc( 2*s.size() + 1 );
int len = mysql_real_escape_string( db, escbuf, s.c_str(), s.size() );
std::string r = std::string( escbuf );
free( escbuf );
return r;
}
MYSQL_RES* mgDB::read_query( const char *fmt, ...)
{
char querybuf[MAX_QUERY_BUFLEN];
va_list ap;
va_start( ap, fmt );
vsnprintf( querybuf, MAX_QUERY_BUFLEN-1, fmt, ap );
if( mysql_query( &m_dbase, querybuf) )
{
mgError( "SQL error in MUGGLE:\n%s\n", querybuf );
}
MYSQL_RES *result = mysql_store_result( &m_dbase );
va_end(ap);
return result;
}
void mgDB::write_query( const char *fmt, ... )
{
char querybuf[MAX_QUERY_BUFLEN];
va_list ap;
va_start( ap, fmt );
vsnprintf( querybuf, MAX_QUERY_BUFLEN-1, fmt, ap );
if( mysql_query( &m_dbase, querybuf ) )
{
mgError( "SQL error in MUGGLE:\n%s\n", querybuf );
}
va_end(ap);
}
|