Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

C++ MySQL nie chce się połaczyc

Ostatnio zmodyfikowano 2014-02-19 18:44
Autor Wiadomość
DejaVu
» 2014-02-17 13:18:25
Hostingi darmowe blokują je z definicji ze względów wydajnościowych. W hostingach płatnych różnie to bywa. Im więcej płacisz tym większa szansa, że taki dostęp będzie możliwy.
P-104765
Nekronomik
Temat założony przez niniejszego użytkownika
» 2014-02-19 08:04:35
Otworzyłem temat bo dalej mam problem z połączeniem.
Znalazłem hosting vipserv płatny ale przez 7 dni mogę go sobie przetestować.
I teraz tak, program sprawdza połączenie i niby się łączy z bazą danych, ale po chwili przestaje program odpowiadać
kod:
C/C++
#include <cstdlib>
#include <iostream>
#include <winsock.h>
#include <windows.h>
# include <mysql/mysql.h>
# include <mysql/mysqld_error.h>
# include <cstring>
# include <cstdio >
#include <string>

using namespace std;

int main() {
   
    MYSQL mysql;
    MYSQL_RES * idzapytania;
   
    MYSQL * laczenie;
    MYSQL_RES * res_set;
    bool sprawdzanie;
    string login, haslo, tabela;
   
    if( mysql_init( & mysql ) == NULL ) {
        printf( "\nBlad inicjalizacji\n" );
        return 0;
    }
   
    laczenie = mysql_real_connect( & mysql, "xxxx", "xxxx", "xxxx", "xxxx", 3306, NULL, 0 );
    cout << mysql_error( & mysql ) << endl;
    if( laczenie )
    {
        cout << "Polaczono !" << endl;
        cout << "Podaj login : ";
        cin >> login;
        cout << "Podaj haslo : ";
        cin >> haslo;
        cout << 1 << endl;
        //mysql_select_db(&mysql, "xxxx");
        cout << 2 << endl;
        tabela = "SELECT * FROM konta WHERE Login='" + login + "' AND Haslo='" + haslo + "'";
        cout << 3 << endl;
        mysql_query( & mysql, tabela.c_str() );
        cout << 4 << endl;
        res_set = mysql_store_result( & mysql );
        cout << 5 << endl;
        cout << res_set << endl;
        if( mysql_num_rows( res_set ) == true )
        {
            cout << "Dane sa poprawne" << endl;
            cout << "Witaj " << login << endl;
        }
        else cout << "Zle dane" << endl;
        //idzapytania = mysql_store_result(&mysql);
        //wiersz = mysql_fetch_row(idzapytania);
        //cout << wiersz[1] << endl;
    }
    else cout << "Nie nawiazano polaczenia" << endl;
   
   
    mysql_close( & mysql );
    return 1;
}
błąd powoduje ta linijka if( mysql_num_rows(res_set)==true) a konkretnie mysql_num_rows(res_set), zauważyłem że res_set=mysql_store_result(& mysql); za każdym razem otrzymuje 0 nie zależnie czy dane zostały wprowadzone poprawnie czy źle, nie wiem dlaczego tak się dzieje. Na localhost res_set przechowywało zwykle takie mniej więcej dane 0x60f840 itp.
P-104955
DejaVu
» 2014-02-19 18:42:39
No to skoro pracujesz na niepoprawnym wskaźniku to się nie dziw, że się aplikacja wysypuje...
P-104970
Nekronomik
Temat założony przez niniejszego użytkownika
» 2014-02-19 18:43:15
Po 8 h szukania udało mi się zlokalizować błąd, a była to literówka która w ogóle nie rzucała się w oczy przez czcionkę...
P-104971
Nekronomik
Temat założony przez niniejszego użytkownika
» 2014-02-19 18:44:33
Jakim wskaźniku ?
P-104972
DejaVu
» 2014-02-19 18:44:58
https://dev.mysql.com/doc​/refman/5.0/en​/mysql-store-result.html

Return Values
A MYSQL_RES result structure with the results. NULL (0) if an error occurred.
P-104973
1 « 2 »
Poprzednia strona Strona 2 z 2