Код: Выделить всё
#include <iostream>
#include <unordered_map>
#include <string>
#include <mysql/mysql.h> // Не забудьте подключить библиотеку MySQL
void executeQuery_select(const char* query, std::unordered_map<int, std::unordered_map<std::string, std::string>>& data) {
if (mysql_query(conn, query)) {
std::cerr << "QUERY FAILED: " << mysql_error(conn) << std::endl;
} else {
MYSQL_RES *res = mysql_store_result(conn);
if (res) {
MYSQL_ROW row;
unsigned int num_fields = mysql_num_fields(res);
MYSQL_FIELD *fields = mysql_fetch_fields(res); // Получаем метаданные колонок
int row_index = 0; // Индекс для каждого ряда
while ((row = mysql_fetch_row(res))) {
std::unordered_map<std::string, std::string> row_map;
for (unsigned int i = 0; i < num_fields; i++) {
if (row[i]) {
row_map[fields[i].name] = row[i];
} else {
row_map[fields[i].name] = "NULL";
}
}
// Добавляем ассоциативный массив в основной map по индексу
data[row_index] = row_map;
row_index++; // Увеличиваем индекс для следующей строки
}
mysql_free_result(res);
}
}
}
Код: Выделить всё
std::string value = data[0]["column_name"]; // Получение значения из первой строки для поля "column_name"