11#include " Database.h"
22
3- std::string Database::QueryEscape (const char * query)
3+ std::string Database::QueryEscape (const char * query)
44{
5- char * newQuery = new char [strlen (query) * 2 + 1 ];
5+ char * newQuery = new char [strlen (query) * 2 + 1 ];
66 mysql_real_escape_string (this ->connection , newQuery, query, strlen (query));
77 std::string str (newQuery);
88 delete[] newQuery;
@@ -39,7 +39,7 @@ bool Database::Connect()
3939
4040static constexpr int MYSQL_JSON = 245 ;
4141
42- std::any ParseFieldType (enum_field_types type, const char * value)
42+ std::any ParseFieldType (enum_field_types type, const char * value)
4343{
4444 if (type == enum_field_types::MYSQL_TYPE_FLOAT || type == enum_field_types::MYSQL_TYPE_DOUBLE || type == enum_field_types::MYSQL_TYPE_DECIMAL)
4545 return atof (value);
@@ -56,9 +56,12 @@ std::any ParseFieldType(enum_field_types type, const char *value)
5656 }
5757}
5858
59- std::vector<std::map<const char *, std::any>> Database::Query (const char * query)
59+ std::vector<std::map<const char *, std::any>> Database::Query (const char * query)
6060{
61- std::vector<std::map<const char *, std::any>> values;
61+ std::vector<std::map<const char *, std::any>> values;
62+
63+ if (!this ->connected )
64+ return {};
6265
6366 if (mysql_ping (this ->connection ))
6467 {
@@ -72,10 +75,10 @@ std::vector<std::map<const char *, std::any>> Database::Query(const char *query)
7275 return {};
7376 }
7477
75- MYSQL_RES * result = mysql_store_result (this ->connection );
78+ MYSQL_RES* result = mysql_store_result (this ->connection );
7679 if (result == nullptr )
7780 {
78- std::map<const char *, std::any> value;
81+ std::map<const char *, std::any> value;
7982
8083 if (mysql_field_count (this ->connection ) == 0 )
8184 {
@@ -94,9 +97,9 @@ std::vector<std::map<const char *, std::any>> Database::Query(const char *query)
9497 {
9598 uint32 num_fields = mysql_num_fields (result);
9699 MYSQL_ROW row;
97- MYSQL_FIELD * field;
100+ MYSQL_FIELD* field;
98101
99- std::vector<const char *> fields;
102+ std::vector<const char *> fields;
100103 std::vector<enum_field_types> fieldTypes;
101104 while ((field = mysql_fetch_field (result)))
102105 {
@@ -106,7 +109,7 @@ std::vector<std::map<const char *, std::any>> Database::Query(const char *query)
106109
107110 while ((row = mysql_fetch_row (result)))
108111 {
109- std::map<const char *, std::any> value;
112+ std::map<const char *, std::any> value;
110113 for (uint32 i = 0 ; i < num_fields; i++)
111114 value.insert (std::make_pair (fields[i], row[i] ? ParseFieldType (fieldTypes[i], row[i]) : " NULL" ));
112115
0 commit comments