[MySQL] Error (0): Failed to exeute query

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hey,
    ich bekomme folgenden Error, sobald ich mit einem Namen über 10 Zeichen connecte und disconnecte.
    Bisher habe ich keine Nachteile bemerkt, die mir der Error bringt, aber ignorieren möchte ich dadurch trotzdem nicht.
    Sprich laden und speichern funktioniert auch mit dem Error.


    Woran könnte das Problem liegen?


    Fehler:

    Zitat

    [MySQL] Error (0): Failed to exeute query. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''Max_Muster' at line 1.

    Name lautet normalerweise: 'Max_Mustermann'





    2 Mal editiert, zuletzt von k4biX ()

  • Versuch es vllt mal so :D



    stock CreateAccount(playerid,passwort[])
    {
    new Query[128];
    mysql_real_escape_string(UserName(playerid),UserName(playerid));
    mysql_real_escape_string(passwort,passwort);
    format(Query,sizeof(Query),"INSERT INTO accounts (Name,Passwort) VALUES ('%s','%s')",UserName(playerid),passwort);
    mysql_query(Query);
    SpielerInfo[playerid][pLevel]=NoobLevel;
    SpielerInfo[playerid][hID]=-1;
    SpielerInfo[playerid][pSkin]=78;
    strins(SpielerInfo[playerid][pRankname],"Unknown",0);
    SpielerInfo[playerid][ActivateSoundeffects]=1;
    GivePlayerMoney(playerid,NoobMoney);
    SetPlayerScore(playerid,NoobLevel);
    return 1;
    }


  • Da war mein Beitrag sinnlos :pinch: bisse verpennt sorry.

  • Okay danke, kannte die Funktion nicht..


    Versuch es mal so..


    CreateAccount

    Spoiler anzeigen
    stock CreateAccount(playerid, pass[])
    {
    new query[256],pname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
    mysql_real_escape_string(pname,pname);
    mysql_real_escape_string(pass,pass);
    format(query, sizeof(query), "INSERT INTO `accounts` (`Name`, `Passwort`) VALUES ('%s', '%s')", Name, pname);
    SpielerInfo[playerid][pLevel]=NoobLevel;
    SpielerInfo[playerid][hID]=-1;
    SpielerInfo[playerid][pSkin]=78;
    strins(SpielerInfo[playerid][pRankname],"Unknown",0);
    SpielerInfo[playerid][ActivateSoundeffects]=1;
    GivePlayerMoney(playerid,NoobMoney);
    SetPlayerScore(playerid,NoobLevel);
    mysql_query(query);
    return true;
    }

  • DAnn sollte es gehen..
    Oder mach es so mit dem CreateAccount


    stock CreateAccount(playerid, pass[])
    {
    new query[256],pname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
    mysql_real_escape_string(pname,pname);
    mysql_real_escape_string(pass,pass);
    format(query, sizeof(query), "INSERT INTO `accounts` (`Name`, `Passwort`) VALUES ('%s', '%s')", Name, pname);
    mysql_query(query);
    return true;
    }


    Und diese Anderen Sachen in einem anderen stock.. zB so:


    stock ResetPlayer(playerid)
    {
    SpielerInfo[playerid][pLevel]=NoobLevel;
    SpielerInfo[playerid][hID]=-1;
    SpielerInfo[playerid][pSkin]=78;
    strins(SpielerInfo[playerid][pRankname],"Unknown",0);
    SpielerInfo[playerid][ActivateSoundeffects]=1;
    GivePlayerMoney(playerid,NoobMoney);
    SetPlayerScore(playerid,NoobLevel);
    return 1;
    }


    Und dass ResetPlayer machst du dann da rein, wo du dein CreateAccounts drinnen hast. (Also im RegisterDialog)

  • Was juckt hier das Plugin?
    Es spuckt den Fehler aus, dass der Query falsch formatiert wurde und man diesen überprüfen soll.
    Der Query wird exakt so an den MySQL-Server gesendet und der gibt dann ggf. Daten zurück, nachdem der Query ausgeführt worden ist.