1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
| #include "mysql.h"
DataBase::DataBase() { _state = false; _mysql = new MYSQL; _fd = nullptr; memset(_field, NULL, sizeof(_field)); _res = nullptr; _column = nullptr; memset(_query, NULL, sizeof(_query)); }
DataBase::~DataBase() { }
bool DataBase::Connect(const char* ip, const char* name, const char* cypher, const char* database_name, const int port) { if (true == _state) { printf("Database connected\n"); return false; } mysql_init(_mysql); if (!(mysql_real_connect(_mysql, ip, name, cypher, database_name, port, NULL, 0))) { printf("Error connecting to database:%s\n", mysql_error(_mysql)); return false; } else { _state = true; printf("Connected succeed\n\n"); return true; } return true; }
int DataBase::GetTableField(const char* table_name) { if (false == _state) { printf("Database not connected\n"); return -1; } sprintf_s(_query, "desc %s", table_name); mysql_query(_mysql, "set names gbk"); if (mysql_query(_mysql, _query)) { printf("Query failed (%s)\n", mysql_error(_mysql)); return false; } if (!(_res = mysql_store_result(_mysql))) { printf("Couldn't get result from %s\n", mysql_error(_mysql)); return false; } return mysql_affected_rows(_mysql); }
bool DataBase::Query(const char* table_name) { if (false == _state) { printf("Database not connected\n"); return false; } int field = GetTableField(table_name); sprintf_s(_query, "select * from %s", table_name); mysql_query(_mysql, "set names gbk"); if (mysql_query(_mysql, _query)) { printf("Query failed (%s)\n", mysql_error(_mysql)); return false; } else { printf("query success\n"); } if (!(_res = mysql_store_result(_mysql))) { printf("Couldn't get result from %s\n", mysql_error(_mysql)); return false; } printf("number of dataline returned: %lld\n", mysql_affected_rows(_mysql)); char* str_field[32]; for (int i = 0; i < field; i++) { str_field[i] = mysql_fetch_field(_res)->name; } for (int i = 0; i < field; i++) { printf("%10s\t", str_field[i]); } printf("\n"); while (_column = mysql_fetch_row(_res)) { for (int i = 0; i < field; i++) { printf("%10s\t", _column[i]); } printf("\n"); } return true; }
bool DataBase::Implement(const char* sentence) { if (false == _state) { printf("Database not connected\n"); return false; } sprintf_s(_query, "%s", sentence); mysql_query(_mysql, "set names gbk"); if (mysql_query(_mysql, _query)) { printf("Query failed (%s)\n", mysql_error(_mysql)); return false; } return true; }
|