Advertisement
Huzina_Patrik

[Lua] DbQuery + DbExec

Feb 16th, 2019
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 6.65 KB | None | 0 0
  1. --A képlet egyszerű. Mindig 0-s dbQueryt használunk. a dbQueryket csak akkor használjuk mikor select van. Egyébb esetben mindig dbExecket használunk!
  2.  
  3. --EZEKHEZ KELL ASYNC NEVEZETŰ RESOURCE!! Sokszor használjuk, példa rá külön lua-ban!
  4. --dbQuery éles példa:
  5.  
  6. dbQuery(
  7.     function(query)
  8.         local query, query_lines = dbPoll(query, 0)
  9.         if query_lines > 0 then
  10.             Async:foreach(query,
  11.                 function(row)
  12.                     local id = tonumber(row["id"])
  13.                     local name = tostring(row["name"])
  14.                     local email = tostring(row["email"])
  15.                     local password = tostring(row["password"])
  16.                     local serial = tostring(row["serial"])    
  17.                     local ip = tostring(row["ip"])
  18.                     local registerdatum = tostring(row["registerdatum"])    
  19.                     local lastlogin = tostring(row["lastlogin"])
  20.                     local online = tonumber(row["online"])
  21.                     isLogged[name] = online == 1
  22.                     local usedSerials = tostring(row["usedSerials"])        
  23.                     local usedIps = tostring(row["usedIps"])        
  24.                     local banned = tostring(row["banned"])        
  25.                     usedSerials = fromJSON(usedSerials)
  26.                     usedIps = fromJSON(usedIps)
  27.                     banned = stringToBoolean(banned)
  28.                     accounts[name] = {id, password, serial, email, regdate, lastlogin, ip, usedSerials, usedIps, banned}
  29.                     isValidAccount[name] = true
  30.                     if serial ~= "0" then
  31.                         isSerialAttachedToAccount[serial] = name
  32.                     end
  33.                     for k,v in pairs(usedSerials) do
  34.                         isSerialAttachedToAccount[v] = name
  35.                     end
  36.                     isEmailAttachedToAccount[email] = name
  37.                     idConvertToName[id] = name
  38.                 end
  39.             )
  40.         end
  41.         outputDebugString("Loading accounts finished. Loaded #"..query_lines.." accounts!", 0, 255, 50, 255)
  42.     end,
  43. connection, "SELECT * FROM `accounts`")
  44.  
  45. --dbQuery Template:
  46.  
  47. dbQuery(
  48.     function(query)
  49.         local query, query_lines = dbPoll(query, 0)
  50.         if query_lines > 0 then
  51.             Async:foreach(query,
  52.                 function(row)
  53.                     --Ide írod a dolgokat.
  54.                 end
  55.             )
  56.         end
  57.     end,
  58. connection, "SELECT * FROM `test`")
  59.  
  60. --dbExec élesben:
  61. dbExec(connection, "UPDATE `accounts` SET `online`=? WHERE `id`=?", 0, id)
  62.  
  63. --dbExec Template:
  64. --A ? jeleket később külön argumentekben adjuk meg itt a 2 kérdőjelt ahogy látod a 0 és "A" koorigálja később.
  65. dbExec(connection, "UPDATE `test` SET `asd`=? WHERE `esd`=?", 0, "A")
  66.  
  67. function interactRegister(sourceElement, username, password, email, serial)
  68.     if isValidAccount[username] then
  69.         exports["cr_infobox"]:addBox(sourceElement, "error", "Ez a felhasználónév ("..username..") már regisztrálva van!")
  70.         return
  71.     end
  72.  
  73.     if isSerialAttachedToAccount[serial] and type(isSerialAttachedToAccount[serial]) == "string" then
  74.         exports["cr_infobox"]:addBox(sourceElement, "error", "Ez a serial ("..serial..") már társítva van egy felhasználóhoz! ("..isSerialAttachedToAccount[serial]..")")
  75.         return
  76.     end
  77.  
  78.     if isEmailAttachedToAccount[email] and type(isEmailAttachedToAccount[serial]) == "string" then
  79.         exports["cr_infobox"]:addBox(sourceElement, "error", "Ez az email ("..email..") már társítva van egy felhasználóhoz! ("..isEmailAttachedToAccount[serial]..")")
  80.         return
  81.     end
  82.    
  83.     local lastClickTick = spam[sourceElement] or 0
  84.     if lastClickTick + 1500 > getTickCount() then
  85.         return
  86.     end
  87.     spam[sourceElement] = getTickCount()
  88.  
  89.     local ip = getPlayerIP(sourceElement)
  90.     local usedIps = toJSON({[ip] = true})
  91.     local usedSerials = toJSON{[serial] = true}
  92.     local usedEmails = toJSON{[email] = true}
  93.  
  94.     dbExec(connection, "INSERT INTO `accounts` SET `name` = ?, `email` = ?, `password` = ?, `serial` = ?, `ip` = ?, `usedSerials` = ?, `usedEmails` = ?, `usedIps` = ?, `banned` = ?, `registerdatum` = NOW(), `lastlogin` = NOW()", username, email, hashedPassword, serial, ip, usedSerials, usedEmails, usedIps, "false")
  95.  
  96.     dbQuery(
  97.         function(query)
  98.             local query, query_lines = dbPoll(query, 0)
  99.             if query_lines > 0 then
  100.                 Async:foreach(query,
  101.                     function(row)
  102.                         local id = tonumber(row["id"])
  103.                         local name = tostring(row["name"])
  104.                         local email = tostring(row["email"])
  105.                         local password = tostring(row["password"])
  106.                         local serial = tostring(row["serial"])    
  107.                         local ip = tostring(row["ip"])
  108.                         local registerdatum = tostring(row["registerdatum"])    
  109.                         local lastlogin = tostring(row["lastlogin"])
  110.                         local serial = tostring(row["serial"])
  111.                         local ip = tostring(row["ip"])
  112.                         local usedSerials = tostring(row["usedSerials"])        
  113.                         local usedIps = tostring(row["usedIps"])        
  114.                         local banned = tostring(row["banned"])        
  115.                         local usedEmails = tostring(row["usedEmails"])        
  116.                         usedSerials = fromJSON(usedSerials)
  117.                         usedIps = fromJSON(usedIps)
  118.                         usedEmails = fromJSON(usedEmails)
  119.                         banned = stringToBoolean(banned)
  120.                         accounts[name] = {id, password, serial, email, regdate, lastlogin, ip, usedSerials, usedIps, banned, usedEmails}
  121.                         isValidAccount[name] = true
  122.                         isSerialAttachedToAccount[serial] = name
  123.                         --[[
  124.                         for k,v in pairs(usedSerials) do
  125.                             isSerialAttachedToAccount[v] = name
  126.                         end]]
  127.                         isEmailAttachedToAccount[email] = name
  128.                         idConvertToName[id] = name
  129.                         exports["cr_infobox"]:addBox(sourceElement, "success", "Sikeres regisztráció!")
  130.                         triggerClientEvent(sourceElement, "goBackToLogin", sourceElement)
  131.                     end
  132.                 )
  133.             end
  134.         end,
  135.     connection, "SELECT * FROM `accounts` WHERE `name` = ?", username)
  136. end
  137. addEvent("reg.goRegister", true)
  138. addEventHandler("reg.goRegister", root, interactRegister)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement