MySql Tquerry Callback Hilfe

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
  • Guten Tag,
    Ich hab da ein kleines Problem.
    Bei folgender Zeile wird der Callback nicht ausgeführt
    mysql_tquery(mysql_connection, querry, "OnPlayerCheck", "i", playerid); // Funktion OnPlayerCheck wird nicht aufgerufen ??





    Ich habe folgenden Code :



    forward OnPlayerCheck(playerid);


    public OnGameModeInit()
    {
    mysql_connection = mysql_connect("127.0.0.1", "root", "test_db", "", 3306, true, 2);
    if(mysql_errno(mysql_connection) != 0)
    {
    print("[MYSQL] >> Die Verbindung zur Datenbank ist Fehlgeschlagen!");
    }
    else
    {
    print("[MYSQL] >> Die Verbindung zur Datenbank wurde Erfolgreich Hergestellt!");
    }
    SetGameModeText("Test");
    AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
    return 1;
    }


    public OnPlayerConnect(playerid)
    {
    new player_name[MAX_PLAYER_NAME], querry[128];
    GetPlayerName(playerid, player_name, sizeof(player_name));
    mysql_format(mysql_connection, querry, sizeof(querry), "SELECT * FROM 'users' WHERE 'username' = '%s'", player_name);
    printf("%s", querry);
    mysql_tquery(mysql_connection, querry, "OnPlayerCheck", "i", playerid); // Funktion OnPlayerCheck wird nicht aufgerufen ??
    return 1;
    }


    public OnPlayerCheck(playerid)
    {
    print("hallo"); // Wird nicht ausgeführt
    }


    Nach dem Aufrufen der Funktion OnPlayerCheck sollte in der Console "hallo" ausgegeben werden.
    Ich benutze das MySql Plugin von pBlueG R39-3.


    Vielen Dank für eure Hilfe im Vorraus :)

  • Bitteschön :)


    [21:43:38] [ERROR] CMySQLQuery::Execute[OnPlayerCheck] - (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 ''users' WHERE 'username' = 'nickking'' at line 1

  • mysql_format(mysql_connection, querry, sizeof(querry), "SELECT * FROM 'users' WHERE 'username' = '%s'", player_name);
    zu:
    mysql_format(mysql_connection, querry, sizeof(querry), "SELECT * FROM users WHERE `username` = '%s'", player_name);

  • mysql_format(mysql_connection, querry, sizeof(querry), "SELECT * FROM 'users' WHERE 'username' = '%s'", player_name);
    zu:
    mysql_format(mysql_connection, querry, sizeof(querry), "SELECT * FROM users WHERE `username` = '%s'", player_name);


    mysql_format(mysql_connection, querry, sizeof(querry), "SELECT * FROM 'users' WHERE 'username' = '%s'", player_name);
    zu:
    mysql_format(mysql_connection, querry, sizeof(querry), "SELECT * FROM users WHERE `username` = '%s'", player_name);



    Wir sind gleichzeitig auf die richtige Lösung gekommen.
    mysql_format(mysql_connection, querry, sizeof(querry), "SELECT * FROM users WHERE username = '%s'", player_name);
    Bei username mussten auch noch die Hochkommater entfernt werden.


    Vielen Dank :D

  • Bei username mussten auch noch die Hochkommater entfernt werden.


    Genau, entweder ohne, oder mit den schrägen Hochkommas: `username`
    Das ist die sichere Variante, weil zum Beispiel Alter ist ein SQL Befehl, da geht es nur mit `Alter`.


    Aber gut, dass du auch drauf gekommen bist!


    PS: Schau dir deine Posts bitte vorher an, und entferne solche Voll-Zitate.