MySQL schreibt nichts in die Datenbank

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
  • Hallo breadfish,
    ich hab angefangen ein Login & Register zu schreiben, bloß ist das problem, dass er nichts in die Datenbank schreibt.
    format(query, sizeof(query), "INSER INTO accounts (Name,Username,Passwort) VALUES ('%s','%s',MD5('%s'))", sName(playerid), SpielerInfo[playerid][Username], SpielerInfo[playerid][Passwort]); 
    Mit freundlichen Grüßen
    Grapefruit

  • Beitrag von AirM4X ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Nimm den "root" Benutzer ohne Passwort. Localhost solltest du nehmen, wenn die Datenbank auf dem gleichen Server liegt:


    #define MYSQL_HOST "127.0.0.1"
    #define MYSQL_USER "root"
    #define MYSQL_PASS ""
    #define MYSQL_DATA "DATENBANKNAME"


    Das ist in 99% aller Fälle standardmäßig so eingestellt.
    Dein user "samp" wird nicht die richtigen Berechtigungen haben, das ist auf localhost (dein Rechner) so eingestellt, standardmäßig zumindest.
    Deshalb benutze, wie ich oben geschrieben habe, den root - User ohne Passwort, der hat ALLE Berechtigungen. Dem kannst du später auch, je nach Client, ein Passwort geben.

  • Das hat schonmal funktioniert, nun sagt er mir im MySQL Log, dass hier irgendwas nicht stimmt.


    mysql_function_query(dbhandle, query, true, "SpielerRegister", "i", playerid);


    public SpielerRegister(playerid)
    {
    SpielerInfo[playerid][ID] = cache_insert_id(dbhandle);
    return 1;
    }


    [23:02:49] [ERROR] CMySQLQuery::Execute[SpielerRegister(i)] - (error #1064) 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 ')' at line 1

  • Du hast ein Fehler in deinem SQL Befehl als kleiner Tipp, es gibt auch ein callback OnQueryError, welches dir das auch in die Server.log posten kann,
    Es kann auch sein das dein query einfach zu kurz ist.



    public OnQueryError(errorid, error[], callback[], query[], connectionHandle)
    {
    printf("Fehlerid: %d",errorid);
    printf("Fehler: %s",error);
    printf("Callback: %s",callback);
    printf("Query: %s",query);
    return 1;
    }