Beiträge von Maho

    In der Funktion mysql_format kannst du mit %e, den String gleich Escapen. (SQL Injection Shield)

    Danke für den Tipp.


    Wieso returnst du query? Welchen zweck hat das.

    Das mache ich immer so hatte es in einem Tutorial gelernt.



    Und die String Größe kannst du auch kleiner ansetzen, so viel brauchst du für den Query nicht.

    Ja war mir nicht sicher wie lang es wird deshalb hatte ich es so habs vergessen zu ändern Danke.



    Zeig mal die du deine Verbindung aufbaust.


    stock MySQL_SetupConnection(ttl = 3)
    {
    print("[MySQL] Verbindungsaufbau...");
    handle = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DBSE);
    if(mysql_errno(handle) != 0)
    {
    if(ttl > 1)
    {
    print("[MySQL] Es konnte keine Verbindung zur Datenbank hergestellt werden.");
    printf("[MySQL] Starte neuen Verbindungsversuch (TTL: %d).", ttl-1);
    return MySQL_SetupConnection(ttl-1);
    }
    else
    {
    print("[MySQL] Es konnte keine Verbindung zur Datenbank hergestellt werden.");
    print("[MySQL] Bitte prüfen Sie die Verbindungsdaten.");
    print("[MySQL] Der Server wird heruntergefahren.");
    return SendRconCommand("exit");
    }
    }
    printf("[MySQL] Die Verbindung zur Datenbank wurde erfolgreich hergestellt! Handle: %d", _:handle);
    return 1;
    }
    Bei der Verbindung gibts kein Problem beim Registieren klapp auch alles wird auch in die Datenbank eingetragen.

    Hallo ich habe gerade mein script auf Linux laufen lassen es funkt alles.
    nur auf linux bekomme ich in dem mysql logs die Fehler zu sehen.
    Fehler:

    [20:35:10] [plugins/mysql] cache_get_value_name: no active cache
    [20:35:10] [plugins/mysql] cache_get_value_name: no active cache
    [20:35:10] [plugins/mysql] cache_get_value_name: no active cache
    [20:35:10] [plugins/mysql] cache_get_value_name: no active cache
    [20:35:10] [plugins/mysql] cache_get_value_name: no active cache
    [20:35:10] [plugins/mysql] cache_get_value_name: no active cache
    [20:35:10] [plugins/mysql] cache_get_value_name: no active cache
    [20:35:10] [plugins/mysql] cache_get_value_name: no active cache
    [20:35:10] [plugins/mysql] cache_get_value_name: no active cache
    [20:35:10] [plugins/mysql] cache_get_value_name: no active cache
    [20:35:10] [plugins/mysql] cache_get_value_name_float: no active cache
    [20:35:10] [plugins/mysql] cache_get_value_name_float: no active cache
    [20:35:10] [plugins/mysql] cache_get_value_name_float: no active cache


    Code:

    stock SaveServerInfo()
    {
    print("MYSQL: Server Infomationen werden Gespeichert.");
    new query[600];
    mysql_format(handle, query, sizeof(query), "UPDATE server_info SET servername = '%s',servertag = '%s',slogan = '%s',serverversion = '%s',scripter = '%s',inhaber = '%s',mapname = '%s',weburl = '%s',ucpurl = '%s',tsip = '%s',noobX = '%f',noobY = '%f',noobZ = '%f'",
    ServerInfo[servername],
    ServerInfo[servertag],
    ServerInfo[slogan],
    ServerInfo[serverversion],
    ServerInfo[scripter],
    ServerInfo[inhaber],
    ServerInfo[mapname],
    ServerInfo[weburl],
    ServerInfo[ucpurl],
    ServerInfo[tsip],
    ServerInfo[noobX],
    ServerInfo[noobY],
    ServerInfo[noobZ]);
    mysql_pquery(handle, query);
    print("MYSQL: Server Infomationen wurden Gespeichert.");
    return query;
    }

    Es wäre schön wenn ihr mir ein Beispiel geben könnt

    nach
    mysql_format(dbhandle,query,sizeof(query),"UPDATE user SET level = '%d', money = '%d',kills = '%d', deaths ='%d', arang = '%d' WHERE id = '%d'",PlayerInfo[playerid][pLevel],PlayerInfo[playerid][pMoney],PlayerInfo[playerid][pKills],PlayerInfo[playerid][pDeaths],PlayerInfo[playerid][pAdmin],PlayerInfo[playerid][p_id]);
    das hier
    mysql_pquery(dbhandle, query);


    #define LOCAL_SQL_HOST "127.0.0.1" //
    #define LOCAL_SQL_USER "root" //
    #define LOCAL_SQL_PASS "" //
    #define LOCAL_SQL_DATA "californiaRL" //
    //
    #define SQL_HOST "5.39.31.192" //
    #define SQL_USER "californiaRL" //
    #define SQL_PASS "************" //
    #define SQL_DATA "californiaRL" //



    OnGameModeInit:

    //mysql_debug(0);
    #if SQL_DATABASE == 0
    MySqlConnection = mysql_connect(LOCAL_SQL_HOST,LOCAL_SQL_USER,LOCAL_SQL_DATA,LOCAL_SQL_PASS);
    #endif
    #if SQL_DATABASE == 1
    MySqlConnection = mysql_connect(SQL_HOST,SQL_USER,SQL_DATA,SQL_PASS);
    printf("Host: %s,User: %s,Datanbank: %s,Passwort: %s",SQL_HOST,SQL_USER,SQL_DATA,SQL_PASS);
    #endif
    #if SQL_LOGGING == 1
    mysql_log(LOG_ALL);
    #endif



    if(/*mysql_ping() == 1*/mysql_errno(MySqlConnection) == 0)
    {
    print("MYSQL » Verbindung zur Datenbank wurde erfolgreich hergestellt.");
    }
    else
    {
    print("MYSQL » Es konnte keine Verbindung zur Datenbank hergestellt werden.");
    print("MYSQL » Es wird erneut versucht eine Verbindung zur Datenbank herzustellen.");
    #if SQL_DATABASE == 0
    MySqlConnection = mysql_connect(LOCAL_SQL_HOST,LOCAL_SQL_USER,LOCAL_SQL_DATA,LOCAL_SQL_PASS);
    #endif
    #if SQL_DATABASE == 1
    MySqlConnection = mysql_connect(SQL_HOST,SQL_USER,SQL_DATA,SQL_PASS);
    printf("Host: %s,User: %s,Datanbank: %s,Passwort: %s",SQL_HOST,SQL_USER,SQL_DATA,SQL_PASS);
    #endif
    if(/*mysql_ping() == 1*/mysql_errno(MySqlConnection) == 0)
    {
    print("MYSQL » Es konnte im zweiten Versuch eine Datenbankverbindung hergestellt werden.");
    }
    else
    {
    print("MYSQL » Es konnte keine Verbindung zur Datenbank hergestellt werden.");
    print("SERVER » Server wird nun heruntergefahren.");
    SendRconCommand("exit");
    return 1;
    }
    }