Advertisement
Guest User

Untitled

a guest
Jan 18th, 2017
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.62 KB | None | 0 0
  1. PacketType Server::CheckForLogin(const char * data,int& id, int& firsttime)
  2. {
  3.     try {
  4.         sql::mysql::MySQL_Driver* driver;
  5.         sql::Connection* con;
  6.         sql::PreparedStatement* pstmt;
  7.         sql::ResultSet* result;
  8.         int pos = 0;
  9.         std::string server;
  10.         std::string username;
  11.         std::string password;
  12.         GetString(server, pos, data);
  13.         GetString(username, pos, data);
  14.         GetString(password, pos, data);
  15.         //Create mysql Connection
  16.         driver = sql::mysql::get_mysql_driver_instance();
  17.         con = driver->connect(cfg.db.host, cfg.db.username, cfg.db.password);
  18.         //Select database
  19.         con->setSchema(server);
  20.         //Create statment and execute orders save retrieved data into Resultset
  21.         pstmt = con->prepareStatement("SELECT password FROM user_acc WHERE username=? LIMIT 1");
  22.         pstmt->setString(1, username);
  23.         pstmt->execute();
  24.         result = pstmt->getResultSet();
  25.         if (result->rowsCount() > 0) {
  26.             if (result->getString("password").asStdString() == password) {
  27.                 pstmt = con->prepareStatement("SELECT firsttimelogin,id FROM user_acc WHERE username= ? LIMIT 1");
  28.                 pstmt->setString(1, username);
  29.                 pstmt->execute();
  30.                 result = pstmt->getResultSet();
  31.                 firsttime = result->getInt("firsttimelogin");
  32.                 id = result->getInt("id");
  33.                 return Login_LoginSuccessful;
  34.             }
  35.             else {
  36.                 return Login_WrongPassword;
  37.             }
  38.         }
  39.         else {
  40.             return Login_NoSuchUser;
  41.         }
  42.         delete result;
  43.         delete pstmt;
  44.         delete con;
  45.  
  46.     }catch (sql::SQLException &e) {
  47.         std::string error = "Mysql Error code :" + std::to_string(e.getErrorCode());
  48.         Log(error);
  49.         error = "Mysql State:" + e.getSQLState();
  50.         Log(error);
  51.         return Mysql_Error;
  52.     }
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement