- 论坛徽章:
- 0
|
//database.h
#ifndef DATABASE_H
#define DATABASE_H
#include <mysql/mysql.h>;
#include <string>;
using namespace std;
class database_c
{
MYSQL _mysql;
MYSQL_RES * _res;
string _database_name;
string _host;
string _user_name;
string _password;
public:
database_c(string a_database_name, string a_host, string a_user_name, string a_password);
~database_c();
bool connect();
MYSQL_RES * query(string a_query);
void close();
};
#endif
//database.cpp
#include "database.h"
#define Debug(x) printf(x);
database_c::database_c(string a_database_name, string a_host, string a_user_name, string a_password)
{
Debug("begin init 0" ;
_database_name = a_database_name;
_host = a_host;
_user_name = a_user_name;
_password = a_password;
Debug("begin init" ;
if(!mysql_init(&_mysql))
{
Debug("error init mysql" ;
}
Debug("end init" ;
connect();
}
database_c::~database_c()
{
close();
}
bool database_c::connect()
{
if(!mysql_real_connect(&_mysql, _host.c_str(), _user_name.c_str(), _password.c_str(), _database_name.c_str(), 0, NULL, 0))
{
Debug("error connect to database" ;
}
}
MYSQL_RES *database_c::query(string a_query)
{
if(mysql_query(&_mysql, a_query.c_str()))
{
Debug("query error" ;
}
Debug("query Ok" ;
return NULL;
}
void database_c::close()
{
mysql_close(&_mysql);
Debug("closed" ;
}
//main.cpp
///#include <mysql/mysql.h>;
#include "database.h"
#include <iostream>;
using namespace std;
int main()
{
database_c db("music", NULL, "root", "temp" ;
// db.query("select * from menuitem" ;
cout << "hello world" << endl;
}
//Makefile
clean:
rm -f *.o
all: main.o database.o
g++ -o db main.o database.o -L/usr/lib -lmysqlclient
main.o: main.cpp
g++ -c -g main.cpp
database.o: database.cpp
g++ -c -g database.cpp
//
make过程序没有问题.但是一运行就出现Aborted.
当去掉
database_c db("music", NULL, "root", "temp");
后.就不会有Abort出现.
请各位大侠帮忙一下. |
|