- Dokumentacja
- Funkcje serwera
- dbFetchValue
Funkcja
dbFetchValue
Wykonuje zapytanie i zwraca jedną wartość: pierwszą kolumnę pierwszego wiersza. Do liczenia (COUNT(*)), sum i pojedynczych pól.
Składnia
mixed dbFetchValue(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
Wartość z pierwszej kolumny pierwszego wiersza, nil, gdy nie ma wierszy. Przy błędzie false i opis błędu jako druga wartość.
Przykład
local db = dbConnect("sqlite", "gracze.db")
addCommandHandler("ilu", function(player)
async(function()
local ilu = dbFetchValue(db, "SELECT COUNT(*) FROM gracze")
outputChatBox("Zarejestrowanych graczy: " .. tostring(ilu), player)
end)
end)
Uwagi
false może znaczyć NULL albo błąd. Wartość NULL z bazy też przychodzi jako false. Jeśli kolumna może być pusta, sprawdź drugą wartość: przy błędzie jest tam opis.
Zobacz też
dbFetchWykonuje zapytanie i od razu zwraca wynik. Jedno wywołanie zamiastdbQuery,dbPollidbFree. Działa z SELECT, INSERT, UPDATE i DELETE.dbFetchOneWykonuje zapytanie i zwraca tylko pierwszy wiersz. Wygodne, gdy szukasz jednego rekordu, na przykład konta gracza.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.