MySQL Problem : mysql_fetch_field_row
#1

Ok guys I am currently working on a GM(MySQL) and doing mysql_fetch_field_row on player connect but mysql log saying "You cannot call this function now. (Reason: Fields/Rows are empty.)" !!!

I am using MySQL R6...

OnPlayerConnect()
pawn Код:
public OnPlayerConnect(playerid)
{
    new P_Name[24],String[128];
    GetPlayerName(playerid,P_Name,sizeof(P_Name));
    //Mysql
    format(String, sizeof(String), "SELECT IP FROM `p_data` WHERE username = '%s' LIMIT 1", P_Name);
    mysql_query(String);
    /*new query_run = mysql_query(String);
    if(!query_run) return SendClientMessage(playerid,C_WHITE,"Qeury Failed!");
    else
    SendClientMessage(playerid,C_WHITE,"Qeury Run!");*/

    mysql_store_result();
    new rows = mysql_num_rows();
    if(!rows)
    {
        format(String,sizeof(String),"Welcome %s, This account is not registerd use /register to register your account.",P_Name);
        SendClientMessage(playerid,C_YGREEN,String);
        //Account Registration on PlayerConnect
        //ShowPlayerDialog(playerid,D_REGISTER,3,"Account Registration","Your Account is not Registered in oue data. \nPlease Type a Password To Register.","Register","Cancel");
    }
    else if(rows == 1)
    {
        new ip[15];
        mysql_fetch_field_row(ip,"IP");
        format(String,sizeof(String),"Welcome back %s ....\nPlease Type password to login.\nIP: %s",P_Name,ip);
        ShowPlayerDialog(playerid,D_LOGIN,3,"Account Login",String,"Login","Cancel");
    }
    mysql_free_result();
    return 1;
}
MySQL logs
Код:
[17:48:24] >> mysql_connect( )

[17:48:24] CMySQLHandler::Connect() - Connection was successful.

[17:48:24] CMySQLHandler::Connect() - Auto-Reconnect has been enabled.

[17:48:24]  

[17:48:24] ---------------------------

[17:48:24] MySQL Debugging activated (02/11/12)

[17:48:24] ---------------------------

[17:48:24]  

[17:48:24] >> mysql_query( Connection handle: 1 )

[17:48:24] CMySQLHandler::Query(SELECT IP FROM `p_data` WHERE username = 'Sexton_Sanders' LIMIT 1) - Successfully executed.

[17:48:24] >> mysql_store_result( Connection handle: 1 )

[17:48:24] CMySQLHandler::StoreResult() - Result was stored.

[17:48:24] >> mysql_num_rows( Connection handle: 1 )

[17:48:24] CMySQLHandler::NumRows() - Returned 1 row(s)

[17:48:24] >> mysql_fetch_field_row( Connection handle: 1 )

[17:48:24] CMySQLHandler::FetchField(IP) - You cannot call this function now. (Reason: Fields/Rows are empty.)

[17:48:24] >> mysql_free_result( Connection handle: 1 )

[17:48:24] CMySQLHandler::FreeResult() - Result was successfully free'd.

[17:48:40] >> mysql_real_escape_string( Connection handle: 1 )

[17:48:40] CMySQLHandler::EscapeString(shahab); - Escaped 6 characters to shahab.

[17:48:40] >> mysql_query( Connection handle: 1 )

[17:48:40] CMySQLHandler::Query(SELECT IP FROM `p_data` WHERE `username` = 'Sexton_Sanders' AND password = 'shahab' LIMIT 1) - Successfully executed.

[17:48:40] >> mysql_store_result( Connection handle: 1 )

[17:48:40] CMySQLHandler::StoreResult() - Result was stored.

[17:48:40] >> mysql_fetch_field_row( Connection handle: 1 )

[17:48:40] CMySQLHandler::FetchField(IP) - You cannot call this function now. (Reason: Fields/Rows are empty.)

[17:48:40] >> mysql_query( Connection handle: 1 )

[17:48:40] CMySQLHandler::Query(SELECT IP FROM `p_data` WHERE `username` = 'Sexton_Sanders' AND password = 'shahab' LIMIT 1) - Successfully executed.

[17:48:40] >> mysql_num_rows( Connection handle: 1 )

[17:48:40] CMySQLHandler::NumRows() - Returned 1 row(s)

[17:48:40] >> mysql_free_result( Connection handle: 1 )

[17:48:40] CMySQLHandler::FreeResult() - Result was successfully free'd.
Database Pic:
Reply
#2

do it like this
pawn Код:
public OnPlayerConnect(playerid)
{
    new P_Name[MAX_PLAYER_NAME],String[128];
    GetPlayerName(playerid,P_Name,sizeof(P_Name));
    //Mysql
    format(String, sizeof(String), "SELECT IP FROM `p_data` WHERE username = '%s' LIMIT 1", P_Name);
    mysql_query(String);
    /*new query_run = mysql_query(String);
    if(!query_run) return SendClientMessage(playerid,C_WHITE,"Qeury Failed!");
    else
    SendClientMessage(playerid,C_WHITE,"Qeury Run!");*/

    mysql_store_result();
    if(mysql_num_rows() == 0)
    {
        format(String,sizeof(String),"Welcome %s, This account is not registerd use /register to register your account.",P_Name);
        SendClientMessage(playerid,C_YGREEN,String);
        //Account Registration on PlayerConnect
        //ShowPlayerDialog(playerid,D_REGISTER,3,"Account Registration","Your Account is not Registered in oue data. \nPlease Type a Password To Register.","Register","Cancel");
    }
    else
    {
        new ip[15];
        mysql_fetch_field_row(ip,"IP");
        format(String,sizeof(String),"Welcome back %s ....\nPlease Type password to login.\nIP: %s",P_Name,ip);
        ShowPlayerDialog(playerid,D_LOGIN,3,"Account Login",String,"Login","Cancel");
    }
    mysql_free_result();
    return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)