function mysql:EasyWrite(tableName, where, data)
if (!data or !istable(data)) then
ErrorNoHalt("Easy MySQL error! Data has unexpected value type (table expected, got "..type(data)..")\n")
return
end
if (!where) then
ErrorNoHalt("Easy MySQL error! 'where' table is malformed! ([1] = "..type(where[1])..", [2] = "..type(where[2])..")\n")
return
end
local query = self:Select(tableName)
if (istable(where[1])) then
for k, v in next, where do
query:Where(v[1], v[2])
end
else
query:Where(where[1], where[2])
end
query:Callback(function(result, status, lastID)
if (istable(result) and #result > 0) then
local updateObj = self:Update(tableName)
for k, v in next, data do
updateObj:Update(k, v)
end
updateObj:Where(where[1], where[2])
updateObj:Callback(function()
print("Easy MySQL updated data. ('"..tableName.."' WHERE "..where[1].." = "..where[2]..")")
end)
updateObj:Execute()
else
local insertObj = self:Insert(tableName)
for k, v in next, data do
insertObj:Insert(k, v)
end
insertObj:Callback(function(result)
if (!istable(where[1])) then
print("Easy MySQL inserted data into '"..tableName.."' WHERE "..where[1].." = "..where[2]..".")
else
local msg = "Easy MySQL inserted data into '"..tableName.."' WHERE "
local i = 0
for k, v in next, where do
i = i + 1
msg = msg..v[1].." = "..v[2]
if (_table.Count(where) != i) then
msg = msg.." AND "
end
end
print(msg)
end
end)
insertObj:Execute()
end
end)
query:Execute()
end
function mysql:EasyRead(tableName, where, callback)
if (!where) then
ErrorNoHalt("Easy MySQL Read error! 'where' table is malformed! ([1] = "..type(where[1])..", [2] = "..type(where[2])..")\n")
return false
end
local query = self:Select(tableName)
if (istable(where[1])) then
for k, v in next, where do
query:Where(v[1], v[2])
end
else
query:Where(where[1], where[2])
end
query:Callback(function(result)
local success, value = pcall(callback, result, (istable(result) and #result > 0))
if (!success) then
ErrorNoHalt("[EasyRead Error] "..value.."\n")
end
end)
query:Execute()
end