Как получить ответ, какие базы данных существуют с использованием команды mysql_query(&mysql,"SHOW DATABASES");

Пытаюсь Понять какие базы данных существуют и если нет той которая нужна создать ее. Для этого написал вот такой код

   MYSQL mysql;
   mysql_init(&mysql);
   mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"your_prog_name");
   if(!mysql_real_connect(&mysql, "localhost", "", "", "test", 0, NULL, 0))
   {
   qDebug() << "Error: can'tconnecttodatabase\n" << mysql_error(&mysql);
   }
   else
   {
   qDebug() << "Success!\n";
   }
   mysql_set_character_set(&mysql, "utf8");
   qDebug()<<"connectioncharacterset: "<<mysql_character_set_name(&mysql) <<endl;
   mysql_query(&mysql,"SHOW DATABASES");

Но как получить ответ на запрос 'SHOW DATABASES'? Что нужно еще дописать?


Ответы (1 шт):

Автор решения: eri

Просто создай базу через mysql_create_db() - 0, если база данных создана успешно, значит её не было. Если не 0 - значит она уже есть или произошла другая ошибка. Получаешь её через mysql_error.

Может выполнить

CREATE DATABASE IF NOT EXISTS db_name;

и посмотреть ответ. В плюсах

if (mysql_query(&mysql, "CREATE DATABASE IF NOT EXISTS db_name;") == 0)
{
   rows = mysql_affected_rows(&mysql );
   if (rows == 0) {
      printf("Exists\n");
   }
   else {
      printf("Created\n");
      // create_tables(&mysql);
   }
}

Если это не подходит, то:

SHOW DATABASES LIKE 'db_name';

Нужно читать результат по строкам через

→ Ссылка