diff options
| author | Machiavelli <none@none> | 2010-09-03 01:00:49 +0200 |
|---|---|---|
| committer | Machiavelli <none@none> | 2010-09-03 01:00:49 +0200 |
| commit | 7982cc0f7d99d8cc3548dc9e8c600608a54368ec (patch) | |
| tree | e64bb59c7857a27edf29beac4c7c1a0d78dfcab9 /src/server/shared/Database | |
| parent | 2c1c391597f9334705198ca965424b5a791df6ba (diff) | |
Core/DBLayer:
- A few prepared statement implementations in authsocket as example.
- Add an ASSERT in MySQLConnection::Execute(PreparedStatement*) to catch faulty created statements
--HG--
branch : trunk
Diffstat (limited to 'src/server/shared/Database')
| -rw-r--r-- | src/server/shared/Database/Implementation/LoginDatabase.cpp | 9 | ||||
| -rw-r--r-- | src/server/shared/Database/Implementation/LoginDatabase.h | 2 | ||||
| -rw-r--r-- | src/server/shared/Database/MySQLConnection.cpp | 1 |
3 files changed, 11 insertions, 1 deletions
diff --git a/src/server/shared/Database/Implementation/LoginDatabase.cpp b/src/server/shared/Database/Implementation/LoginDatabase.cpp index ccdffc2954d..46930436496 100644 --- a/src/server/shared/Database/Implementation/LoginDatabase.cpp +++ b/src/server/shared/Database/Implementation/LoginDatabase.cpp @@ -20,11 +20,18 @@ bool LoginDatabaseConnection::Open(const std::string& infoString) { + if (!MySQLConnection::Open(infoString)) + return false; + + m_stmts.resize(MAX_LOGINDATABASE_STATEMENTS); + /* ################################## LOAD YOUR PREPARED STATEMENTS HERE ################################## */ + PrepareStatement(LOGIN_SET_VS, "UPDATE account SET v = ?, s = ? WHERE username = ?"); + PrepareStatement(LOGIN_SET_LOGONPROOF, "UPDATE account SET sessionkey = ?, last_ip = ?, last_login = NOW(), locale = ?, failed_logins = 0 WHERE username = ?"); - return MySQLConnection::Open(infoString); + return true; } diff --git a/src/server/shared/Database/Implementation/LoginDatabase.h b/src/server/shared/Database/Implementation/LoginDatabase.h index 6ad514774dd..dce347ad22e 100644 --- a/src/server/shared/Database/Implementation/LoginDatabase.h +++ b/src/server/shared/Database/Implementation/LoginDatabase.h @@ -37,6 +37,8 @@ typedef DatabaseWorkerPool<LoginDatabaseConnection> LoginDatabaseWorkerPool; enum LoginDatabaseStatements { + LOGIN_SET_VS, + LOGIN_SET_LOGONPROOF, MAX_LOGINDATABASE_STATEMENTS, }; diff --git a/src/server/shared/Database/MySQLConnection.cpp b/src/server/shared/Database/MySQLConnection.cpp index b2e52ea7eb7..3eb8cb3d032 100644 --- a/src/server/shared/Database/MySQLConnection.cpp +++ b/src/server/shared/Database/MySQLConnection.cpp @@ -191,6 +191,7 @@ bool MySQLConnection::Execute(PreparedStatement* stmt) uint32 index = stmt->m_index; MySQLPreparedStatement* m_mStmt = GetPreparedStatement(index); + ASSERT(m_mStmt); // Can only be null if preparation failed, server side error or bad query m_mStmt->m_stmt = stmt; // Cross reference them for debug output stmt->m_stmt = m_mStmt; |
