Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

MySQL - Tabela się nie tworzyTabela się nie tworzy przy wykonywaniu query

mysql sql sourcemod sourcepawn

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
2 odpowiedzi w tym temacie

#1 BlacKisEverywhere

    Nowy

  • Nowy

Reputacja: 0
Nowy

  • Postów:3
Offline

Napisano 07.02.2020 17:16

#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");
    }
}

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

 

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

 


  • +
  • -
  • 0

#2 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 381
Offline

Napisano 07.02.2020 17:20

próbowałeś ręcznie w konsoli mysql czy tam przez phpmyadmin wykonac zapytanie?

CREATE TABLE IF NOT EXISTS `%s` (`name` varchar(30) NOT NULL, `steamId` varchar(32), `enabled` int(1))

  • +
  • -
  • 0

#3 BlacKisEverywhere

    Nowy

  • Autor tematu
  • Nowy

Reputacja: 0
Nowy

  • Postów:3
Offline

Napisano 07.02.2020 17:40

 

próbowałeś ręcznie w konsoli mysql czy tam przez phpmyadmin wykonac zapytanie?

CREATE TABLE IF NOT EXISTS `%s` (`name` varchar(30) NOT NULL, `steamId` varchar(32), `enabled` int(1))

Nie próbowałem ale zaraz to zrobie

Edit: Stworzyło


Użytkownik BlacKisEverywhere edytował ten post 07.02.2020 17:41

  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: mysql, sql, sourcemod, sourcepawn

Użytkownicy przeglądający ten temat: 1

0 użytkowników, 1 gości, 0 anonimowych