필자는 내 프로젝트 (게임 서버)가 필요로하는 많은 함수를 그룹핑하는 공통적 인 mysql 태스크를 포함한 클래스에서 작업하기 시작했다.커스텀 MySQL 함수 클래스
는 지금
.. 난 (리눅스에서) 내가 여기있다, 오류가 공유 라이브러리로이 클래스를 구축을 위해 노력하는 동안 C++와 MySQL을 사용하는 방법을 배우고만큼이 isint
error: ‘connect’ was not declared in this scope
그래서 .. 내가 다소 그것이 무엇을 의미하는지 이해 과정의 기능 checklogin()
에서 일어나는는, 문제는이 connect
내가 같은 라이브러리에서 만든 다른 함수 connectdb()
에 선언되어 있다는 점이다. 난 그냥 포인터 물건을 반복하려하지만, 그때 내가 그함수를 (seg 오류가 실제로 디버거가 말한에서 MySQL 라이브러리에서 온 seg 오류를 입력) seg 오류가 날 리드 그래서 나는 그것이 올바른 방법이되지 않을 수도 있다고 생각 (또는 그 것이었다?)
어쨌든, 다시 connect
로,이 문제에 대한 가능한 해결책이 될 수 있는지 포인트를 궁금 해서요? 또는이 포인터가 다른 함수 여기 에 의해 감지 얻을 것을 관리하는 코드입니다 ...
sssql.cpp (그런데 마녀, 기능 코드는이 튜토리얼 http://www.nitecon.com/tutorials-articles/develop/cpp/c-mysql-beginner-tutorial/에서 붙여 넣기 거의 복사/있었다)
#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