MYSQL_RES *QueryBuilder( MYSQL* Connection, char* cQuery ) { char* Error=""; if( mysql_query( Connection, cQuery ) ) { strcpy( Error, mysql_error( Connection ) ); DEBUG_Log( Error ); return 0; } return mysql_store_result( Connection ); }
MYSQL* MySQLConnect(void) { char* Error=""; MYSQL *Connection = NULL; if( !( Connection = mysql_init( NULL ) ) ) { strcpy( Error, mysql_error( Connection ) ); DEBUG_Log( Error ); return NULL; } if( !( mysql_real_connect( Connection, DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE, DB_PORT, NULL, 0 ) ) ) { strcpy( Error, mysql_error( Connection ) ); DEBUG_Log( Error ); return Connection; } return Connection; }
/* * ============================================================================= * Funktion: QueryBuilder * Input: MYSQL Connection, char cQuery * Output: result|0 * * Beschreibung: Prüft ob ein Query fehlerhaft ist und gibt das Ergebnis * dieses Querys zurueck, falls keine Fehler geschmissen * werden. Sonst 0. * ============================================================================= */ MYSQL_RES *QueryBuilder( MYSQL* Connection, char* cQuery ) { /* Initialisierung der Variablen */ char Error[500]; if( mysql_query( Connection, cQuery ) ) { strcpy( Error, mysql_error( Connection ) ); DEBUG_Log( Error ); return 0; } /* Rueckgabe des Ergebnisses */ return mysql_store_result( Connection ); }
/* * ============================================================================= * Funktion: MySQLConnect * Input: - * Output: Connection|NULL * * Beschreibung: Verbindung zur Datenbank. Falls keine Verbindung herge- * stellt werden konnte, wird NULL zurueckgegeben. * ============================================================================= */ MYSQL* MySQLConnect(void) { /* Initialisierung der Variablen */ char Error[500]; MYSQL *Connection = NULL; /* Pruefen ob Verbindung erfolgreich*/ if( !( Connection = mysql_init( NULL ) ) ) { strcpy( Error, mysql_error( Connection ) ); DEBUG_Log( Error ); return NULL; } if( !( mysql_real_connect( Connection, DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE, DB_PORT, NULL, 0 ) ) ) { strcpy( Error, mysql_error( Connection ) ); DEBUG_Log( Error ); return Connection; } return Connection; }
/** * ============================================================================ * Funktion: getUser * Input: char cNickname[], char cPassword[] * Output: struct ACCOUNT * * Beschreibung: Holt Informationen zu einem Nutzer aus der Datenbank. * ============================================================================ **/ ACCOUNT getUser(char cNickname[], char cPassword[]) { int arraysize=0; char cQuery[300]; MYSQL_ROW ROW; ACCOUNT user; MYSQL_RES *userEntity=NULL; MYSQL *Connection = NULL; Connection = MySQLConnect (); sprintf(cQuery, "SELECT id, first_name, last_name, username FROM accounts WHERE username ='******' AND password=MD5('%s');", cNickname, cPassword ); userEntity = QueryBuilder (Connection, cQuery); if(userEntity ) { ROW = mysql_fetch_row( userEntity ); if( ROW ) { arraysize = sizeof(ROW) / sizeof(char); if( arraysize == 4 ) { user.ID = atoi( ROW[0] ); strcpy(user.FirstName, ROW[1]); strcpy(user.LastName, ROW[2]); strcpy(user.UserName, ROW[3]); } else { DEBUG_Log("Database didnt select [4] rows."); } } } mysql_free_result(userEntity); MySQLClose (Connection); return user; }