- Dokumentacja
- Funkcje serwera
- dbFetchOne
Funkcja
dbFetchOne
Wykonuje zapytanie i zwraca tylko pierwszy wiersz. Wygodne, gdy szukasz jednego rekordu, na przykład konta gracza.
Składnia
table dbFetchOne(element connection, string query, mixed ...)Argumenty
connectionelement- Uchwyt z
dbConnect. querystring- Zapytanie SQL z
?w miejscu wartości. ...mixed- Wartości wstawiane w miejsce
?.
Zwraca
Pierwszy wiersz (kolumna = wartość), nil, gdy zapytanie nie zwróciło żadnego wiersza, albo false i opis błędu.
Przykład
local db = dbConnect("mysql", "glowna")
addEventHandler("onPlayerJoin", root, function()
local player = source
async(function()
local konto = dbFetchOne(db, "SELECT kasa, skin FROM gracze WHERE serial = ?", getPlayerSerial(player))
if not isElement(player) then return end
if konto then
setPlayerMoney(player, konto.kasa)
setElementModel(player, konto.skin)
else
outputChatBox("Witaj pierwszy raz na serwerze!", player)
end
end)
end)
Zobacz też
dbFetchWykonuje zapytanie i od razu zwraca wynik. Jedno wywołanie zamiastdbQuery,dbPollidbFree. Działa z SELECT, INSERT, UPDATE i DELETE.dbFetchValueWykonuje zapytanie i zwraca jedną wartość: pierwszą kolumnę pierwszego wiersza. Do liczenia (COUNT(*)), sum i pojedynczych pól.asyncUruchamia funkcję jako zadanie (korutynę). Kod w zadaniu biegnie od razu, aż do pierwszego czekania (sleep,await,waitForEvent). Wtedy oddaje sterowanie, a serwer i gra działają dalej. Gdy czekanie się skończy, zadanie rusza od miejsca, w którym stanęło. Dzięki temu kroki rozłożone w czasie (odliczanie, zapytanie do bazy, odpowiedź HTTP, czekanie na gracza) piszesz po kolei, bez zagnieżdżonych callbacków i timerów.