Почему при работе с Библиотекой MYSQL нужно выполнять все действия(подключение и т.п.) одной функции?

Добрый день.
Используют библиотеку mysql c++
Создал класс
class MySqlConnector {
public:
    MySqlConnector(std::string host, std::string login,std::string pass,std::string dbName,int port);
    bool connect();
    bool execute(Package value, int count);
    ~MySqlConnector();
private:
  std::string host_;
  std::string login_;
  std::string pass_;
  std::string dbName_;
  int port_ ;
  MYSQL *connection_, mysql_;
};
Реализовал метода класса 

MySqlConnector::MySqlConnector(std::string host, std::string login, std::string pass,std::string dbName, int port)
    : host_(host),login_(login),pass_(pass),dbName_(dbName),port_(port)
{
    mysql_init(&mysql_);

}

bool MySqlConnector::connect()
{
    connection_ = mysql_real_connect(&mysql_,host_.c_str(),login_.c_str(),
                                     pass_.c_str(),dbName_.c_str(),port_,NULL,0);
    if (connection_ == 0) {
        VLOG(1) << "Can not connect to MYSQL server error: "<<mysql_error(&mysql_);
        return false;
    }
    return true;

}
bool MySqlConnector::execute(Package value,int count)
{
......

   int query_state = mysql_query(connection_,query.c_str());
    if (query_state !=0){
        VLOG(7) << "Can not insert package to MYSQL error: " <<mysql_error(connection_);
        return false;
    }
    else
        return true;
}

MySqlConnector::~MySqlConnector()
{
    mysql_close(connection_);

}


Как только дохожу до функции mysql_query. Приложение просто падает.

Если все функции mysql собрать в одной функции все работает нормально. Можете подсказать почему ?
  • Вопрос задан
  • 113 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы