Hello, Why when i using sql my server freeze?
void OnCollectiblePickup(Item item, BasePlayer player)
{
if (player != null) {
if(item.info.shortname == "wood" || item.info.shortname == "sulfur.ore" || item.info.shortname == "stones"){
QueryUpdate(player.UserIDString, "Protect:( mydb SET `"+item.info.shortname+"` = `"+item.info.shortname+"`+"+item.amount+" WHERE `uid` = "+player.UserIDString+";");
}
}
}
void QueryUpdate(string uid, string sqlQuery)
{
if (sqlQuery.Length > 0 && uid.Length > 0) {
sqlLibrary.Update(Oxide.Core.Database.Sql.Builder.Append(sqlQuery), sqlConnection, rowsAffected =>{});
sqlLibrary.CloseDb(sqlConnection);
}
}or
void OnUserConnected(IPlayer player)
{
var uid = player.Id;
if(uid != null) {
sqlLibrary.Query(Oxide.Core.Database.Sql.Builder.Append("Protect:( `uid` FROM rust_stats WHERE `steamid`="+uid+" LIMIT 1"), sqlConnection, list =>
{
if (list == null || list.Count == 0) {
sqlLibrary.Insert(Oxide.Core.Database.Sql.Builder.Append("Protect:( rust_stats (`uid`) VALUES (@0);", uid), sqlConnection, rowsAffected =>{sqlLibrary.CloseDb(sqlConnection);});
InitPlayerData(player);
} else {
sqlLibrary.CloseDb(sqlConnection);
InitPlayerData(player);
}
});
}
return;
}
void OnUserDisconnected(IPlayer player) {
//QueryUpdate
}
private void Unload()
{
foreach (var player in players.Connected) {
if(player != null) {
OnUserDisconnected(player);
Puts("SQL Saved Stats for: "+player.Name);
}
}
}
void OnServerSave()
{
saves++;
Puts("Count saves: "+saves);
if(saves > 15){
foreach (var player in players.Connected) {
OnUserDisconnected(player);
Puts("AUTOUPDATE SQL");
}
saves = 0;
}
}Maybe I'm doing something wrong? Everything works but with frequent requests, server freezes.