aboutsummaryrefslogtreecommitdiff
path: root/src/server/shared/Database/PreparedStatement.h
diff options
context:
space:
mode:
authorSpp <spp@jorge.gr>2013-01-02 12:22:50 +0100
committerSpp <spp@jorge.gr>2013-01-02 12:22:50 +0100
commitebd14b4f01cc64a2a488bdbb1046897cc4da8e9a (patch)
tree2175f0dda7c795d90918291f95f84f28c3047612 /src/server/shared/Database/PreparedStatement.h
parent5280a77fe1e9e4a26d98b59a31715d5632238bb2 (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/PreparedStatement.h')
-rw-r--r--src/server/shared/Database/PreparedStatement.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/server/shared/Database/PreparedStatement.h b/src/server/shared/Database/PreparedStatement.h
index ae9acb4c441..9334bc6dc66 100644
--- a/src/server/shared/Database/PreparedStatement.h
+++ b/src/server/shared/Database/PreparedStatement.h
@@ -55,7 +55,8 @@ enum PreparedStatementValueType
TYPE_I64,
TYPE_FLOAT,
TYPE_DOUBLE,
- TYPE_STRING
+ TYPE_STRING,
+ TYPE_NULL
};
struct PreparedStatementData
@@ -91,6 +92,7 @@ class PreparedStatement
void setFloat(const uint8 index, const float value);
void setDouble(const uint8 index, const double value);
void setString(const uint8 index, const std::string& value);
+ void setNull(const uint8 index);
protected:
void BindParameters();
@@ -125,6 +127,7 @@ class MySQLPreparedStatement
void setFloat(const uint8 index, const float value);
void setDouble(const uint8 index, const double value);
void setString(const uint8 index, const char* value);
+ void setNull(const uint8 index);
protected:
MYSQL_STMT* GetSTMT() { return m_Mstmt; }
@@ -132,7 +135,7 @@ class MySQLPreparedStatement
PreparedStatement* m_stmt;
void ClearParameters();
bool CheckValidIndex(uint8 index);
- std::string getQueryString(const char *query);
+ std::string getQueryString(std::string const &sqlPattern) const;
private:
void setValue(MYSQL_BIND* param, enum_field_types type, const void* value, uint32 len, bool isUnsigned);