diff options
author | Spp <spp@jorge.gr> | 2013-01-02 12:22:50 +0100 |
---|---|---|
committer | Spp <spp@jorge.gr> | 2013-01-02 12:22:50 +0100 |
commit | ebd14b4f01cc64a2a488bdbb1046897cc4da8e9a (patch) | |
tree | 2175f0dda7c795d90918291f95f84f28c3047612 /src/server/shared/Database/MySQLConnection.cpp | |
parent | 5280a77fe1e9e4a26d98b59a31715d5632238bb2 (diff) |
Core/Mysql: Multiple changes
- added support for setting NULL column values to MySQL wrapper in core
- replaced nonstandard strdup function and manual memory management with std::string
- fixed bug in MySQLPreparedStatement::getQueryString method, it failed when string parameter contained embedded '?' symbols
- fixed memory leak in MySQLPreparedStatement::setString method
Diffstat (limited to 'src/server/shared/Database/MySQLConnection.cpp')
-rw-r--r-- | src/server/shared/Database/MySQLConnection.cpp | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/src/server/shared/Database/MySQLConnection.cpp b/src/server/shared/Database/MySQLConnection.cpp index acf0d96684c..10ff16b5ddd 100644 --- a/src/server/shared/Database/MySQLConnection.cpp +++ b/src/server/shared/Database/MySQLConnection.cpp @@ -63,9 +63,6 @@ MySQLConnection::~MySQLConnection() for (size_t i = 0; i < m_stmts.size(); ++i) delete m_stmts[i]; - for (PreparedStatementMap::const_iterator itr = m_queries.begin(); itr != m_queries.end(); ++itr) - free((void *)m_queries[itr->first].first); - mysql_close(m_Mysql); } @@ -150,8 +147,6 @@ bool MySQLConnection::Open() bool MySQLConnection::PrepareStatements() { DoPrepareStatements(); - for (PreparedStatementMap::const_iterator itr = m_queries.begin(); itr != m_queries.end(); ++itr) - PrepareStatement(itr->first, itr->second.first, itr->second.second); return !m_prepareError; } @@ -424,6 +419,8 @@ MySQLPreparedStatement* MySQLConnection::GetPreparedStatement(uint32 index) void MySQLConnection::PrepareStatement(uint32 index, const char* sql, ConnectionFlags flags) { + m_queries.insert(PreparedStatementMap::value_type(index, std::make_pair(sql, flags))); + // For reconnection case if (m_reconnecting) delete m_stmts[index]; |