SA-MP Forums Archive
[Ajuda] Probleminha com MySQL - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Probleminha com MySQL (/showthread.php?tid=542404)



Probleminha com MySQL - Chainksain - 19.10.2014

Amigos eu criei um tуpico sobre tamanho das linhas esses dias atrбs e jб resolvi o meu problema, porйm agora eu criei uma forma do sistema se conectar a database e verfiicar se deu certo ou nгo a conexгo, porйm nгo estб funcionando, fiz um debug com mensagens que aparecem no console, porйm nem sequer as mensagens aparecem, ou seja, a Callback OnQueryError nгo estб sendo chamada, segue o cуdigo:

pawn Код:
public MySQL_Start(host[],user[],database[],password[])
{
    MySQL = mysql_connect(host,user,database,password);
    new Cache:result = mysql_query(MySQL,"SHOW TABLES");
    new rows,fields;
    cache_get_data(rows,fields,MySQL);
    if(rows)
    {
        new dest[MAX_PLAYER_NAME];
        for(new i=0; i<rows; i++)
        {
            cache_get_row(i, 0, dest);
            printf("[MySQL] Tabela '%s' verificada com sucesso.",dest);
        }
    }
    cache_delete(result);
    return 1;
}

public OnQueryError(errorid, error[], callback[], query[], connectionHandle)
{
    printf("[MySQL] ERROR %d: %s | Query: %s | Callback: %s",errorid, error, query, callback);
    switch(errorid)
    {
        case CR_SERVER_GONE_ERROR: mysql_reconnect(connectionHandle);
        case 2003: SendRconCommand("exit");
    }
    return 1;
}
NOTA: A public MySQL_Start eh chamada em OnGameModeInit

eu acho que o cуdigo era para funcionar, tendo em vista que esses erros sгo detectados no mysql_log, segue aqui o log do mysql:

Код:
[21:27:05] [ERROR] CMySQLConnection::Connect - (error #2003) Can't connect to MySQL server on 'localhost' (10061)
[21:27:05] [ERROR] CMySQLQuery::Execute - (error #2006) MySQL server has gone away
[21:27:05] [WARNING] cache_get_data - no active cache
[21:27:05] [WARNING] CMySQLHandle::DeleteSavedResult - invalid result id ('0')
[21:27:06] [ERROR] CMySQLConnection::Connect - (error #2003) Can't connect to MySQL server on 'localhost' (10061)
[21:27:06] [ERROR] CMySQLConnection::Connect - (error #2003) Can't connect to MySQL server on 'localhost' (10061)
[21:27:06] [ERROR] CMySQLConnection::Connect - (error #2003) Can't connect to MySQL server on 'localhost' (10061)
Se alguйm puder me dar uma luz, agradeзo desde jб.


Re: Probleminha com MySQL - Chainksain - 20.10.2014

UP

oloko gente, ninguйm sabe como me ajudar??


Re: Probleminha com MySQL - Dolby - 20.10.2014

Aparentemente, hб falha na conexгo do plugin com o MySQL. Certifique-se de estar passando os parвmetros corretamente no connect.

Quanto tempo Chainksain =).


Re: Probleminha com MySQL - Chainksain - 20.10.2014

entгo, mas a idйia eh essa mesmo, a falha na conexгo й proposital, pois deveria aparecer uma mensagem no console quando hб esta falha, sу que a falha acontece porйm nгo aparece nenhuma mensagem no console..

pois й nй, a muito eu havia saido do SAMP, porйm estou de volta, mas desta vez estou independente mesmo, sem FusioN, sem Chefгo, sem nada.. estou criando um game mode inteiramente feito por mim, assim que terminar irei abrir meu servidor


Re: Probleminha com MySQL - Dolby - 20.10.2014

Mas vocк estб passando os parвmetros corretamente no connect? OnQueryError й chamada quando ocorre algum erro no processamento de uma query.

Pra ser sincero atй agora eu nгo entendi muito bem o que deseja fazer. Vocк deseja verificar se estб conectado ao DB, ou se a query foi executada com sucesso?. Pelo que pude perceber, vocк deseja verificar se a conexгo foi bem sucedida, e vocк pode fazer isto via mysql_ping:

pawn Код:
if(mysql_ping()) print("MySQL connection is still alive!");
// ...
if(!mysql_ping()) print("MySQL connection is dead!");



Re: Probleminha com MySQL - Chainksain - 20.10.2014

sim, eu desejo verificar se a conexгo foi estabelecida com sucesso ou nгo, porйm nгo existe mysql_ping na versгo R39 e eu tenho que usar essa versao pq ela tem recursos q eu uso e q nao tem na versгo R7...

tecnicamente falando, OnQueryError deveria ser chamada qdo executa-se a query SHOW TABLES; pois haveria um erro com a query (erro 2003)

de acordo com a docmentaзгo do MySQL o erro 2003 й o seguinte:

Quote:

Error: 2003 (CR_CONN_HOST_ERROR)

Message: Can't connect to MySQL server on '%s' (%d)

fonte da informaзгo: http://dev.mysql.com/doc/refman/5.1/...es-client.html

se olhar no log que eu postei do mysql_log, eh justamente este erro que ocorre, porйm a public OnQueryError nгo й chamada.


Re: Probleminha com MySQL - Bruno_Cyra - 20.10.2014

Essa OnQueryError sempre deu erro aqui tambйm, nunca й chamada


Re: Probleminha com MySQL - Chainksain - 20.10.2014

entao deve ser bug do plugin.. acho que vou modificar a source do plugin entгo, corrigir este bug ou criar a funзгo mysql_ping


Re: Probleminha com MySQL - Deeh16 - 21.10.2014

Vocк nгo pode usar OnQueryError(O Prуpio nome jб diz , Erro na Query) para verificar se deu erro na conexгo , vocк deverб usar o mysql_errno() ou mysql_ping() depende de sua versгo do MySQL , Versхes r33+ usa-se o mysql_errno();
pawn Код:
if(mysql_errno() != 0)
    return SendRconCommand("exit");
Ative os Logs do MySQL e poste os aqui.
(R33+)
pawn Код:
mysql_log(LOG_ALL);
R7
pawn Код:
mysql_debug(1);



Re: Probleminha com MySQL - Chainksain - 24.10.2014

opa brigadгo hein! adiantou meu lado