Skocz do zawartości

Nowy szablon forum

mygo.pl

Stworzyliśmy dla Was nowy wygląd forum. Z pewnością znajdziesz rzeczy, które wg Ciebie mogą zostać zmienione - wspomnij o tym w specjalnym wątku.

Czytaj więcej

Jak założyć własną sieć

serwerów CS

Zastanawiasz się nad prowadzeniem własnej sieci serwerów? Przeczytaj podstawowe informacje, na które należy zwrócić uwagę, przy takim projekcie.

Czytaj więcej

Tworzymy spis sieci

dodaj swoją

Dodaj sieć do której należysz, pozwoli to na promocję i budowę ogólnopolskiej bazy sieci CS.

Czytaj więcej

MySQL - Tabela się nie tworzy


BlacKisEverywhere
 Udostępnij

Rekomendowane odpowiedzi

Witam.  Próbowałem napisać plugin na testowego vipa lecz zatrzymałem się w momencie gdy próbuje stworzyć tabelę w bazie danych mysql.
 

#include <sourcemod>

ConVar g_tableName;
Database g_db;

public Plugin info = {
    name = "Test Vip",
    author = "BlacK",
    description = "Test VIP"
}

public void OnPluginStart(){
    g_tableName = CreateConVar("nazwa_tabeli", "tVip", "Ustawia nazwę tabeli w bazie danych");

    Database.Connect(OnConnect, "tVip");
    PrintToServer("[Onecer] Test vip aktywny");
}

public void OnConnect(Database db, char[] error, any data){
    char tableName[20];
    g_tableName.GetString(tableName, sizeof(tableName));

    if(db == null){
        PrintToServer("[Onecer] Nie można połączyć się z bazą danych.");
        SetFailState("[Onecer] Nie można połączyć się z bazą danych.");
        PrintToConsoleAll("[Onecer] Nie można połączyć z bazą danych");
        return;
    }
    
    PrintToServer("[Onecer] Połączono z bazą danych");
    PrintToConsoleAll("[Onecer] Połączono z bazą danych");

    g_db = db;

    char query[264];
    g_db.Format(query, sizeof(query), "CREATE TABLE IF NOT EXISTS `%s` (`name` varchar(30) NOT NULL, `steamId` varchar(32), `enabled` int(1))", tableName);
    g_db.Query(ConnectCallback, query);
}

public void ConnectCallback(Database db, DBResultSet results, char[] error, any data){
    char tableName[20];
    g_tableName.GetString(tableName, sizeof(tableName));
    PrintToConsoleAll("--------- Connect Callback ---------");
    if(results == null){
        PrintToServer("[Onecer] Nie można Stworzyć/Wczytać tabeli");
        PrintToConsoleAll("[Onecer] Nie można Stworzyć/Wczytać tabeli");
        return;
    }

    PrintToServer("[Onecer] Stworzono/Wczytano tabelę");
    PrintToConsoleAll("[Onecer] Stworzono/Wczytano tabelę");

    for(int i = 1; i <= MaxClients; i++){
        if(IsClientInGame(i)){
            char steamId[32];
            GetClientAuthId(i, AuthId_Steam2, steamId, sizeof(steamId));

            char name[30];
            GetClientName(i, name, sizeof(name));

            int enabled = 1;

            InsertPlayer(name, steamId, enabled);
        }
    }
}
public void InsertPlayer(char[] name, char[] steamId, int enabled){
    char tableName[20];
    g_tableName.GetString(tableName, sizeof(tableName));

    char query[264];
    g_db.Format(query, sizeof(query), 
        "INSERT INTO `%s` (`name`, `steamId`, `enabled`) SELECT * FROM (SELECT '%s', '%s', '%d') AS tmp WHERE NOT EXISTS (SELECT `steamId` FROM `%s` WHERE `steamId` = '%s') LIMIT 1;",
        tableName, name, steamId, enabled, tableName, steamId
    );
    g_db.Query(InsertCallback, query);
}

public void InsertCallback(Database db, DBResultSet results, char[] error, any data){
    PrintToServer("[Results]: %s", results)
    if(results == null){
        PrintToServer("[Onecer] Nie można wczytać klienta");
        PrintToConsoleAll("[Onecer] Nie można wczytać klienta");
    }
}

 
Nie mam pojęcia co jest nie tak z tym kodem. W konsoli loguje, że udało się połączyć z bazą.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
 Udostępnij

×
×
  • Dodaj nową pozycję...