我開始研究一個類,其中包括我的項目(遊戲服務器)需要的許多重新組合通用mysql任務的函數。自定義MySQL函數類
現在有isint因爲我正在學習如何使用C++
的MySQL雖然試圖建立這個類作爲共享庫(Linux下)我有一個錯誤,這是非常..
error: ‘connect’ was not declared in this scope
所以..它發生在函數checklogin()
當然我有點明白它是什麼意思,問題是這connect
是在另一個函數connectdb()
中聲明,我在同一個庫中。我試圖重複指針的事情,但是當我輸入checklogin
函數(seg fault actualy來自mysql庫,從調試器所說的)時,它會導致我出現seg故障,所以我認爲它可能不是正確的方法(或是否?)
無論如何,我想知道什麼可以解決這個問題,再次指向connect
?或管理該指針得到另一個功能 這裏檢測的是代碼...(巫順便說一下,函數的代碼已經幾乎複製/從本教程http://www.nitecon.com/tutorials-articles/develop/cpp/c-mysql-beginner-tutorial/粘貼)
sssql.cpp
#include "sssql.h"
sssql::sssql()
{
//ctor
}
sssql::~sssql()
{
//dtor
}
bool sssql::checklogin(std::string, std::string)
{
MYSQL *connect;
MYSQL_RES *res_set;
MYSQL_ROW row;
mysql_query(connect,"SELECT * FROM account");
unsigned int i = 0;
res_set = mysql_store_result(connect);
unsigned int numrows = mysql_num_rows(res_set);
while ((row = mysql_fetch_row(res_set)) != NULL)
{
printf("%s\n",row[i] != NULL ?
row[i] : "NULL");
}
}
bool sssql::connectdb()
{
MYSQL *connect;
connect=mysql_init(NULL);
if(!connect)
{
printf("MySQL Initialization Failed");
return 1;
}
connect=mysql_real_connect(connect,SERVER,USER,PASSWORD,DATABASE,0,NULL,0);
if(connect){
printf("Connection Succeeded\n");
}
else{
printf("Connection Failed!\n");
}
}
sssql.h
#ifndef SSSQL_H
#define SSSQL_H
#include "mysql.h"
#define SERVER "localhost"
#define USER "root"
#define PASSWORD "password"
#define DATABASE "database"
#include <stdio.h>
#include <string>
class sssql
{
public:
sssql();
virtual ~sssql();
// Check login info
std::string usrcheck;
std::string passwd;
bool connectdb();
bool checklogin(std::string, std::string);
protected:
private:
};
#endif // SSSQL_H