- Dokumentacja
- Funkcje serwera
- dbQuery
Funkcja
dbQuery
Wysyła zapytanie z wynikiem. Wynik odbierasz przez dbPoll albo w funkcji zwrotnej, która dostanie uchwyt zapytania.
Składnia
handle dbQuery([function callback, table callbackArgs,] element connection, string query [, mixed ...])Argumenty
callbackfunction, opcjonalny = nil- Funkcja wywołana, gdy wynik jest gotowy. Pierwszy argument to uchwyt zapytania.
callbackArgstable, opcjonalny = nil- Dodatkowe argumenty dla funkcji zwrotnej.
connectionelement- Uchwyt z
dbConnect. querystring- Zapytanie SQL z
?. ...mixed- Wartości dla
?.
Zwraca
Uchwyt zapytania albo false.
Przykład
addEventHandler("onPlayerLogin", root, function()
local player = source
dbQuery(function(q)
local rows = dbPoll(q, 0)
if rows and rows[1] and isElement(player) then
setPlayerMoney(player, rows[1].kasa)
end
end, db, "SELECT kasa FROM gracze WHERE serial = ?", getPlayerSerial(player))
end)
Uwagi
Nie blokuje serwera. Zapytanie wykonuje się w tle, a funkcja zwrotna przychodzi, gdy baza odpowie, zawsze dopiero po powrocie z dbQuery. Zapytania na jednym połączeniu wykonują się po kolei.
Zobacz też
dbPollOdbiera wynik zapytania zdbQuery: wiersze, liczbę zmienionych wierszy i ID ostatnio wstawionego. Jeśli chcesz po prostu wykonać zapytanie i dostać wiersze, prościej użyćdbFetch.dbFetchWykonuje zapytanie i od razu zwraca wynik. Jedno wywołanie zamiastdbQuery,dbPollidbFree. Działa z SELECT, INSERT, UPDATE i DELETE.dbFreeZwalnia wynik zapytania, którego nie zamierzasz czytać.dbExecWykonuje zapytanie, które nie zwraca wyniku (INSERT, UPDATE, CREATE). Argumenty wstawiasz w miejsce znaków?.