Mysql Problem

  • Mysql Problem

    Nabend, ich habe folgendes Problem. Beim Einloggen, holt er alle Werte aus der Datenbank raus, jedoch übergibt er sie nicht an PlayerInfo.

    OS: Debian Squeeze x64

    Mysql: BlueG R5



    Code:

    [pwn]
    public OnPlayerLogin(playerid,password[])
    {
    new tmp2[256];
    new string2[64];
    new arrCoords2[98][1];
    new query[256], query2[500];
    new playername2[MAX_PLAYER_NAME];
    GetPlayerName(playerid, playername2, sizeof(playername2));
    mysql_real_escape_string(playername2, playername2);
    mysql_real_escape_string(password, password);
    format(query, sizeof(query), "SELECT * FROM `accounts` WHERE `username` = '%s' AND `passwort` = '%s'", playername2, password);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_row(query2);
    new zeilen = mysql_num_rows();
    if(zeilen == 1)
    {
    split(query2, arrCoords2, '|');
    PlayerInfo[playerid][pID] = strval(arrCoords2[0]);
    strmid(PlayerInfo[playerid][pKey], arrCoords2[1], 0, strlen(arrCoords2[1]), 255);
    PlayerInfo[playerid][pLevel] = strval(arrCoords2[2]);
    PlayerInfo[playerid][pAdmin] = strval(arrCoords2[3]);
    PlayerInfo[playerid][pDonateRank] = strval(arrCoords2[4]);
    PlayerInfo[playerid][gPupgrade] = strval(arrCoords2[5]);
    PlayerInfo[playerid][pConnectTime] = strval(arrCoords2[6]);
    PlayerInfo[playerid][pReg] = strval(arrCoords2[7]);
    PlayerInfo[playerid][pSex] = strval(arrCoords2[8]);
    usw.
    [/pwn]



    Den If Block betritt er (getestet mit SendClientMessage).



    Lg
  • Würde es mal so probieren: [pwn]public OnPlayerLogin(playerid,password[]) { new tmp2[256]; new string2[64]; new arrCoords2[98][1]; new query[256], query2[500]; new playername2[MAX_PLAYER_NAME]; GetPlayerName(playerid, playername2, sizeof(playername2)); mysql_real_escape_string(playername2, playername2); mysql_real_escape_string(password, password); format(query, sizeof(query), "SELECT * FROM `accounts` WHERE `username` = '%s' AND `passwort` = '%s'", playername2, password); mysql_query(query); mysql_store_result(); mysql_fetch_row(query2); if(mysql_num_rows() == 1) { sscanf(query2, "p<|>s[1]df", s, d, f); }[/pwn] Sprich mit sscanf.
  • gemacht, funktioniert ebenfalls nicht.
    [pwn]public OnPlayerLogin(playerid,password[])
    {
    new tmp2[256];
    new string2[64];
    new query[256], query2[500];
    new playername2[MAX_PLAYER_NAME];
    GetPlayerName(playerid, playername2, sizeof(playername2));
    mysql_real_escape_string(playername2, playername2);
    mysql_real_escape_string(password, password);
    format(query, sizeof(query), "SELECT * FROM `accounts` WHERE `username` = '%s' AND `passwort` = '%s'", playername2, password);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_row(query2);
    if(mysql_num_rows() == 1)
    {
    sscanf(query2, "p<|>ds[128]ddddddddddddddddddddddddddddddddddddddddddddddffdddddddfffdddddddddddddddddddddddddddddds[128]ddddddd",
    PlayerInfo[playerid][pID],PlayerInfo[playerid][pKey],
    PlayerInfo[playerid][pLevel],PlayerInfo[playerid][pAdmin],
    PlayerInfo[playerid][pDonateRank],PlayerInfo[playerid][gPupgrade],
    PlayerInfo[playerid][pConnectTime],PlayerInfo[playerid][pReg],
    PlayerInfo[playerid][pSex],PlayerInfo[playerid][pAge], usw[/pwn]