No such export fetchAll / execute in resource mysql-async
Skrypt został napisany pod starszy system bazodanowy niż ten, który masz zainstalowany.
Zrób najpierw to
Albo zainstaluj wersję, której skrypt oczekuje, albo poproś sprzedawcę o zaktualizowaną.
Co to znaczy
Skrypt woła API zasobu bazodanowego, którego nie masz zainstalowanego. FiveM przeszedł przez trzy takie — mysql-async, potem ghmattimysql, teraz oxmysql — a skrypty pisane pod jeden wołają eksporty, których pozostałe nie mają.
Co to powoduje
Uszeregowane według tego, jak często są odpowiedzią.
- 1
Skrypt chce mysql-async, a ty uruchamiasz oxmysql
oxmysql ma warstwę zgodności, ale trzeba ją włączyć i nie pokrywa wszystkiego.
- 2
Stary zasób jest zainstalowany, ale nieuruchomiony
Jest w folderze, nie ma go w server.cfg.
- 3
Dwa zasoby bazodanowe naraz
Oba zainstalowane, każdy skonfigurowany w połowie, a skrypty rozdzielone między nie.
- 4
Eksport, którego nigdy nie było
fetchSyncnależał do ghmattimysql;fetchAlldo mysql-async. Żaden z nich nie jest natywnym API oxmysql.
Jak poznać, który jest twój
print(GetResourceState('oxmysql'), GetResourceState('mysql-async'))Potem przeszukaj wadliwy skrypt pod kątem tego, którego API używa:
grep -rn "MySQL\.\|exports\['mysql-async'\]\|exports.oxmysql" moj-skrypt/
Gdzie szukać
Wywołania bazodanowe skryptu i to, który zasób bazy uruchamia server.cfg.
Jak to naprawić
Ustandaryzuj się na oxmysql i włącz warstwę zgodności dla starych skryptów:
# server.cfg set mysql_connection_string "mysql://user:pass@host/db?charset=utf8mb4" ensure oxmysql # tylko jeśli wciąż uruchamiasz skrypty pisane pod stare API set oxmysql_slow_query_warning 200
W skrypcie, który możesz edytować, przenieś wywołanie:
-- mysql-async
MySQL.Async.fetchAll('SELECT * FROM users WHERE identifier = @id', { ['@id'] = id }, cb)
-- oxmysql
MySQL.query('SELECT * FROM users WHERE identifier = ?', { id }, cb)Wciąż utknąłeś na własnym kodzie?
Ta strona mówi, co ten błąd zwykle oznacza. Wklej swoją konsolę do Server Fixera, a uszereguje wszystko, co w niej jest, i powie, co zrobić najpierw; a jeśli wolisz tego nie ruszać, ORBIE naprawi skrypt i odda ci zasób gotowy do wrzucenia.
bug_reportOtwórz Server FixerDla tego rodzaju błędu Script Optimizer wyłapuje wzorce zapytań, które to powodują.