Szia! Az alábbi parancsokkal tudod kezelni a mysql-t és annak tábláit.
local connection = dbConnect(típus, \"dbname=adatbázisneve;host=ip cím\", \"felhasználónév\", \"jelszó\")
Adatbázis típusok: sqlite, mysql <-- neked ez kell
dbExec(csatlakozási változó, \"Parancs\") dbExec-el lehetséges táblákba rakni adatokat és azokat frissíteni
*csatlakozási változó: az a változó ami alatt lefuttatad a csatlakozást
*Parancs: Az alábbi parancsok lehetnek számodra szükségesek:
\"INSERT INTO tábla VALUES(?, ?, ?, ?)\", \"első sor értéke\", \"második sor értéke\", \"harmadik sor értéke\", \"negyedik sor értéke\"
\"UPDATE tábla SET sorneve=?\", \"első kérdőjel értéke\", \"második kérdőjel értéke\"
\"DELETE FROM tábla WHERE accountid = ?\", \"Kérdőjel értéke\"
Illetve, ha szeretnéd egy adott játékosnak az adatait megváltoztatni, akkor például accountid alapján ez lehetséges: \"UPDATE tábla WHERE accountid = ? SET sorneve = ?\", \"első kérdőjel értéke\", \"második kérdőjel értéke\"
dbQuery dbQuery(csatlakozási változó, \"Parancs\")
dbQuery-vel lehet adatokat kikérni táblákból, viszont ahoz, hogy változóként használd ehez egy dbPoll-t kell használnod.
*Parancs: Az alábbi parancsok lehetnek a számodra szükségesek:
\"SELECT sorneve FROM tábla WHERE accountid = ?\", \"kérdőjel értéke\" --> Lekéri az adott sor értékét a táblából ahol megtalálja azt az accountid-t amit megadsz
SELECT * FROM tábla WHERE accountid = ?\", \"kérdőjel értéke\" --> Lekéri az összes sort adatait a táblából ahol megtalálja azt az accountid-t amit megadsz
És íme egy példa arra, hogy használhatod ezeket kódokban:
local connection = dbConnect(\"mysql\", \"dbname=test;host=127.0.0.1\", \"root\", \"\")
function loadDatas(thePlayer, data) -- adatbetöltési funkció
local accid = getElementData(thePlayer, \"accountid\") -- lekérjük az id-t elementData-ból
local query = dbPoll(dbQuery(connection, \"SELECT * FROM accounts WHERE accountid = ?\", accid), -1) -- dbQuery amelyik lekéri az összes adatot az adott accountid-vel rendelkező táblarészből
for k, v in ipairs(query) do -- egy for ciklussal az összes értéket a \'v\' változóba töltjük
setElementData(thePlayer, tostring(data), v[tostring(data)]) -- egy elementData-t hozunk létre melynek neve és értéke megegyezik a \'data\' változó értékével és a mysql lekérés \'data\' értékével
end
end
addEvent(\"loadDatas\", true)
addEventHandler(\"loadDatas\", root, loadDatas)
function setDatas(thePlayer, data, value) -- adatbeállítási funkció
local accid = getElementData(thePlayer, \"accountid\") -- lekérjük a játékos accuntid-jét elementData-ból
local result, num_affected_rows, errormsg = dbPoll(dbQuery(connection, \"SELECT * FROM accounts WHERE accountid = ?\", accid),-1) -- kikeressük, hogy létezik-e ilyen id-vel táblarész
if #num_affected_rows > 0 then -- ha a találatok száma nagyobb mint 0, akkor ez történik
local exec = dbExec(connection, \"UPDATE accounts WHERE accountid = ? SET ? = ?\", accid, data, value) -- Felülírjuk a meglévő adatot
else -- ha nem, akkor pedig az alábbi
local exec = dbExec(connection, \"INSERT INTO accounts SET ? = ?\", data, value) -- létrehozunk egy táblarészt
end
end
addEvent(\"setDatas\", true)
addEventHandler(\"setDatas\", root, setDatas)