mysql データベースに接続するための C++ クラスを作成しました。
hpp ファイル
#include <vector>
#include <string>
#include "mysql/mysql.h"
#ifndef _DATA
#define _DATA
class Database {
public:
string host;
string user;
string pwd;
string db;
MYSQL * connection;
MYSQL_RES *result;
MYSQL_ROW row;
Database(const string & host,
const string & user,
const string & pwd,
const string & db);
int createMysqlConnection();
};
#endif
cpp ファイル
#include "Database.hpp"
Database::Database(const string & host,
const string & user,
const string & pwd,
const string & db) :
mysqlHost(host),
mysqlUser(user),
mysqlPassword(pwd),
mysqlDBName(db)
{}
int Database::createMysqlConnection(){
MYSQL * connection;
connection = mysql_init(NULL);
if(!mysql_real_connect(connection, mysqlHost.c_str(), mysqlUser.c_str(),
mysqlPassword.c_str(), mysqlDBName.c_str(),
0, NULL, 0)){
fprintf(stderr, "Connection to database failed: %s\n",
mysql_error(connection));
return EXIT_FAILURE;
}
cout << "connected to mysql" << endl;
};
メイン関数または別のクラスから接続変数にアクセスしようとすると、変数 '接続がこのスコープで宣言されていません のようなエラーが常に発生します。フレンド クラスまたは継承を使用して接続変数を指定しようとしましたが、うまくいきませんでした。構文で何か間違っていると思います。
別のクラスからこの変数を指す方法の例を次に示します。
Class risk: public Database {
public:
vector<sting> parameter;
Datasabse.connection;
etc....
}