View Single Post
Author Message
BlacKisEverywhere
Junior Member
Join Date: Feb 2020
Old 02-08-2020 , 06:49   MYSQL - table is not created
Reply With Quote #1

Hi. I tried to make test vip plugin but i finished on creating table and save players to thar table.
PHP Code:
#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 dbchar[] errorany data){
    
char tableName[20];
    
g_tableName.GetString(tableNamesizeof(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(querysizeof(query), "CREATE TABLE IF NOT EXISTS `%s` (`name` varchar(30) NOT NULL, `steamId` varchar(32), `enabled` int(1))"tableName);
    
g_db.Query(ConnectCallbackquery);
}

public 
void ConnectCallback(Database dbDBResultSet resultschar[] errorany data){
    
char tableName[20];
    
g_tableName.GetString(tableNamesizeof(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<= MaxClientsi++){
        if(
IsClientInGame(i)){
            
char steamId[32];
            
GetClientAuthId(iAuthId_Steam2steamIdsizeof(steamId));

            
char name[30];
            
GetClientName(inamesizeof(name));

            
int enabled 1;

            
InsertPlayer(namesteamIdenabled);
        }
    }
}
public 
void InsertPlayer(char[] namechar[] steamIdint enabled){
    
char tableName[20];
    
g_tableName.GetString(tableNamesizeof(tableName));

    
char query[264];
    
g_db.Format(querysizeof(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;",
        
tableNamenamesteamIdenabledtableNamesteamId
    
);
    
g_db.Query(InsertCallbackquery);
}

public 
void InsertCallback(Database dbDBResultSet resultschar[] errorany data){
    
PrintToServer("[Results]: %s"results)
    if(
results == null){
        
PrintToServer("[Onecer] Nie można wczytać klienta");
        
PrintToConsoleAll("[Onecer] Nie można wczytać klienta");
    }

- I didn't get any logs in console.
- I pasted create table query to phpmyadmin console and it created a table.

Thanks for all help.
BlacKisEverywhere is offline