Не пойму, как правильно использовать sql callback. Связь с бд сделал таким образом:
До того, как данные для подключение внес в исходник, callback был в таком виде, но теперь он не подходит и варианты которые я пробовал, тоже не работают. Подскажите как правильно
PHP:
new Handle:g_SQL = INVALID_HANDLE, bool:MYSQL,conte;
public OnPluginStart(){
new Handle:kv = CreateKeyValues("");
KvSetString(kv, "driver", "mysql");
KvSetString(kv, "host", "");
KvSetString(kv, "database", "");
KvSetString(kv, "user", "");
KvSetString(kv, "pass", "");
KvSetString(kv, "port", "3306");
decl String:error[255];
g_SQL = SQL_ConnectCustom(kv, error, 255, true);
CloseHandle(kv);
new String:driver[15];
SQL_ReadDriver(g_SQL, driver, 15);
MYSQL = StrEqual(driver, "mysql", false);
LogMessage("Установлено %s соединение", MYSQL ? "MYSQL" : "SQLite");
}
public OnClientPostAdminCheck(client)
{
if (!IsFakeClient(client))
{
decl String:steamid[32],String:clientname[24];
decl String:country[45];
decl String:ip[64];
GetClientName(client, clientname, sizeof(clientname));
GetClientIP(client, ip, sizeof(ip));
GeoipCountry(ip, country, sizeof(country));
GetClientAuthId(client,AuthId_Steam2,steamid,sizeof(steamid));
char query[256], szAuth[32];
GetClientAuthId(client, AuthId_Engine, szAuth, sizeof(szAuth), true);
Format(query, sizeof(query), "UPDATE IGNORE `users` SET `steamid` = '%s' WHERE `ip` = '%s';", steamid, ip);
SQL_TQuery(g_SQL, SQL_Callback_UpdateSteamid, query)
}
}
PHP:
public void SQL_Callback_UpdateSteamid(Database hDatabase, DBResultSet results, const char[] sError, any iUserID)
{
if(sError[0])
{
LogError("SQL_Callback_UpdateSteamid: %s", sError);
return;
}
new iClient = GetClientOfUserId(iUserID);
if (iClient > 0 && SQL_GetAffectedRows(results) < 1 && !IsClientInKickQueue(iClient))
{
}
}