- Dokumentacja
- Funkcje serwera
- dbTransaction
Funkcja
dbTransaction
Wykonuje kilka zapytań jako jedną transakcję. Funkcja dostaje obiekt tx z metodami tx:query, tx:queryOne i tx:exec. Błąd SQL, error() albo return false w funkcji cofa wszystkie zmiany.
Składnia
bool, mixed dbTransaction(element connection, function fn)Argumenty
connectionelement- Połączenie z
dbConnect. fnfunction- Funkcja
fn(tx)z zapytaniami transakcji.
Zwraca
true i wartości zwrócone przez funkcję; false i komunikat po cofnięciu.
Przykład
async(function()
local ok, err = dbTransaction(db, function(tx)
local row = tx:queryOne("SELECT money FROM players WHERE id = ?", 1)
if not row or row.money < 500 then return false end
tx:exec("UPDATE players SET money = money - 500 WHERE id = ?", 1)
tx:exec("UPDATE players SET money = money + 500 WHERE id = ?", 2)
end)
print(ok, err)
end)