#ifndef MYSQLQUERY_H #define MYSQLQUERY_H #include #include #include #include #include class MySQLConnection { public: MySQLConnection(); ~MySQLConnection(); bool Connect(std::string sHostname, uint16_t wPort, std::string sUsername, std::string sPassword, std::string sDB); bool SelectDB(std::string sSchemaName); void Disconnect(); std::string GetLastError(); MYSQL *getConn(); bool IsConnected(); std::string EscapeString(std::string value); private: MYSQL *m_MySQLConn; bool m_bIsConnected; std::string m_sHostname; std::string m_sUsername; std::string m_sPassword; std::string m_sSchemaName; uint16_t m_wPort; }; class MySQLQuery { public: MySQLQuery(MySQLConnection *mConn, std::string sStatement); ~MySQLQuery(); std::string setArgString(int idx, std::string value); int setArgInt(int idx, int value); double setArgDouble(int idx, double value); float setArgFloat(int idx, float value); time_t setArgTime(int idx, time_t value); bool ExecuteQuery(); std::string BuildQueryString(); std::string getResultString(int row, int field); std::string getResultString(int row, std::string field); int getResultInt(int row, int field); int getResultInt(int row, std::string field); double getResultDouble(int row, int field); double getResultDouble(int row, std::string field); float getResultFloat(int row, int field); float getResultFloat(int row, std::string field); time_t getResultTime(int row, int field); time_t getResultTime(int row, std::string field); int getResultRowCount(); private: typedef std::map TResultRow; MySQLConnection *m_sqlConn; int m_iResultRowCount; std::string m_sStatement; std::map m_mArgMap; std::map m_mResultMap; std::map m_mFieldMap; }; #endif // MYSQLQUERY_H