open.mp forum
[Pawn] invalid connection handle - Printable Version

+ open.mp forum (https://forum.open.mp)
-- Forum: SA-MP (https://forum.open.mp/forumdisplay.php?fid=3)
--- Forum: Pawn Scripting (https://forum.open.mp/forumdisplay.php?fid=10)
--- Thread: [Pawn] invalid connection handle (/showthread.php?tid=742)



invalid connection handle - IdontMIss - 2019-08-04

I started scripting a fresh new TDM script from 0 and I wanted to try out the bcyrpt hashing alg and everything went fine I created a register/login system but when I wanted to test it next things happend:

myScript:
Code:
public OnPlayerConnect(playerid) {
?? ?new query[256];
?? ?mysql_format(SQL, query, sizeof query, "SELECT * FROM `players` WHERE `name`='%e' LIMIT 1", GetPlayerNameEx(playerid)); // 9
??? mysql_pquery(SQL, query, "OnAccountCheck", "i", playerid); // 10
??? #if defined reg_OnPlayerConnect
??????? return reg_OnPlayerConnect(playerid);
??? #else
??????? return true;
??? #endif
}
#if defined _ALS_OnPlayerConnect
??? #undef OnPlayerConnect
#else
??? #define _ALS_OnPlayerConnect
#endif
#define OnPlayerConnect reg_OnPlayerConnect
#if defined reg_OnPlayerConnect
??? forward reg_OnPlayerConnect(playerid);
#endif

The errors I get in mysql
Code:
[INFO] changed log level from 'warning, error' to 'debug, info, warning, error'
[DEBUG] CThreadedConnection::WorkerFunc(this=0x41ea020, connection=0x41ea020)
[DEBUG] mysql_format(111, 0x0307AF98, 256, "SELECT * FROM `players` WHERE `name` = '%e'") (modules/register.pwn:10)
[ERROR] mysql_format: invalid connection handle '111' (modules/register.pwn:10)
[DEBUG] mysql_pquery(111, "", "OnAccountCheck", "i") (modules/register.pwn:11)
[ERROR] mysql_pquery: invalid connection handle '111' (modules/register.pwn:11)
[DEBUG] mysql_pquery: return value: '0' (modules/register.pwn:11)

EDIT: I use R41-4 and this happens after OnGameModeInit, and my connection is successful


RE: invalid connection handle - IdontMIss - 2019-08-04

For some reason my connection handle changes?



Code:
?? ?new q[256];

?? ?printf("%d // 1", _:SQL);

?? ?mysql_format(1, q, sizeof q, "SELECT * FROM `players` WHERE `name`='%e' LIMIT 1", GetPlayerNameEx(playerid));

?? ?printf("%d // 2", _:SQL);

??? mysql_pquery(1, q, "OnAccountCheck", "i", playerid);

??? printf("%d // 3", _:SQL);

Returns:



Code:
1 // 1

111 // 2

111 // 3



RE: invalid connection handle - IdontMIss - 2019-08-04

Well I found out why,



Code:
forward [MAX_PLAYER_NAME  1]GetPlayerNameEx(playerid);

GetPlayerNameEx(playerid) {

    new name[MAX_PLAYER_NAME  1];

    GetPlayerName(playerid, name, sizeof name);

    return name;

}