Who wont this work? SQL Database

Why wont this work? No error or nothing.
It is a Rank system look over it and you will see.

[lua]
function sql_value_stats ( ply )
kills = sql.QueryValue(“SELECT kills FROM player_stats WHERE unique_id = '”…ply:SteamID()…"’")
deaths = sql.QueryValue(“SELECT deaths FROM player_stats WHERE unique_id = '”…ply:SteamID()…"’")
ply:SetNWString(“unique_id”, unique_id)
ply:SetNWInt(“kills”, kills)
ply:SetNWInt(“deaths”, deaths)
ply:SetNWInt(“points”, points)
end

function saveStat ( ply )
unique_id = ply:GetNWString (“SteamID”)
kills = ply:GetNWInt(“kills”)
deaths = ply:GetNWInt(“deaths”)
sql.Query(“UPDATE player_stats SET kills = “…kills…”, deaths = “…deaths…” WHERE unique_id = '”…ply:SteamID()…"’")
print("[RANK] Stats Updated!")
end
hook.Add(“DoPlayerDeath”, “PlayerDied”, saveStat)

function tables_exist()

if (sql.TableExists("player_stats")) then 
	print("[RANK] Table already exists.

“)
else
if (!sql.TableExists(“player_stats”)) then
query = “CREATE TABLE player_stats ( unique_id varchar(225), kills int, deaths int )”
result = sql.Query(query)
if (result) then
print(”[RANK] Player account created
“)
sql_value_stats( ply )
else
print(”[RANK] An error occured
“)
end
else
print(”[RANK] An error occured")
end
end
end

function new_player( SteamID, ply )

steamID = SteamID
sql.Query( "INSERT INTO player_stats (`unique_id`, `kills`, `deaths`)VALUES ('"..steamID.."', '0', '0')" )
ply:ChatPrint("You have had a [RANK] Account Made!")

end

function player_exists( ply )

steamID = ply:GetNWString("SteamID")
result = sql.Query("SELECT unique_id, kills, deaths FROM player_stats WHERE unique_id = '"..steamID.."'")
if (result) then
	sql_value_stats( ply )
else
	new_player( steamID, ply )
end

end

function Initialize()
tables_exist()
end

hook.Add(“DoPlayerDeath”, “PlayerDied”, function( ply, killer )

local deaths = ply:GetNWInt(“deaths”) or 0
ply:SetNWInt( “deaths”, deaths + 1 )

if killer:IsPlayer() then
local kills = killer:GetNWInt(“kills”) or 0
ply:SetNWInt( “kills”, kills + 1 )
end
ply:SetNWInt( “points”, kills - deaths * 2 )
ply:ChatPrint(“Your stats have been updated!”)
timer.Simple( 1, saveStats( ply ) )
end)

function SayRank( ply, cmd, args )
local mykills = sql.Query(“SELECT kills FROM player_stats WHERE unique_id = '”…ply:SteamID()…"’")
local mydeaths = sql.Query(“SELECT deaths FROM player_stats WHERE unique_id = '”…ply:SteamID()…"’")

ply:ChatPrint( “You have “…mykills…” kills and “…mydeaths…” deaths.” )

end
concommand.Add(“rank”, SayRank)
[/lua]

Issue: There is always danger when inserting arbitrary strings into a SQL database. For example, if the string was:


') DROP TABLE kills;

Then when you tried to insert it into a database you would lose your data. However, string injections aren’t specifically your problem here, but the issue is your string isn’t properly formatted for SQL.

Answer: when inserting a string into a SQL database, wrap it with **[Sql.SQLStr

http://wiki.garrysmod.com/favicon.ico](http://wiki.garrysmod.com/?title=Sql.SQLStr)**.

I just got an error.

[lua]
lua\autorun\server\main.lua:79: attempt to concatenate local ‘mydeaths’ (a boolean value)
[/lua]

Any clue why it is rendering as True or False?

Would of been more helpful if you told us what line 79 was.

sql.Query will return false if no result is found or there is a error in the SQL.