THE ORB
Iniciando o studio

Não existe o export fetchAll / execute no resource mysql-async

Um script foi escrito para um sistema de banco mais antigo do que o que você tem instalado.

groupsAquele script não faz nadapersonVocê consegue consertar

Faça isto primeiro

Instale a versão que o script espera, ou peça uma atualizada para o vendedor.

bug_reportMelhor colar o console inteiro

O que significa

Um script está chamando a API de um resource de banco de dados que não é o que você tem instalado. O FiveM passou por três: mysql-async, depois ghmattimysql, agora oxmysql, e os scripts escritos para um chamam exports que os outros não têm.

O que causa isso

Ordenado pela frequência com que é a resposta.

  1. 1

    O script quer mysql-async e você roda oxmysql

    O oxmysql traz uma camada de compatibilidade, mas ela precisa ser ativada e não cobre tudo.

  2. 2

    O resource antigo está instalado mas não iniciado

    Está na pasta, não está no server.cfg.

  3. 3

    Dois resources de banco de dados ao mesmo tempo

    Os dois instalados, cada um configurado pela metade, e os scripts divididos entre eles.

  4. 4

    Um export que nunca existiu

    fetchSync era do ghmattimysql; fetchAll era do mysql-async. Nenhum é a API nativa do oxmysql.

Como saber qual é o seu

print(GetResourceState('oxmysql'), GetResourceState('mysql-async'))

E depois procure no script que falha qual das APIs ele usa:

grep -rn "MySQL\.\|exports\['mysql-async'\]\|exports.oxmysql" meu-script/

Onde olhar

As chamadas ao banco de dados do script, e qual resource de banco o server.cfg sobe.

Como consertar

Unifique no oxmysql e ligue a camada de compatibilidade para os scripts antigos:

# server.cfg
set mysql_connection_string "mysql://user:pass@host/db?charset=utf8mb4"
ensure oxmysql

# só se você ainda roda scripts escritos para as APIs antigas
set oxmysql_slow_query_warning 200

Para um script que você pode editar, porte a chamada:

-- mysql-async
MySQL.Async.fetchAll('SELECT * FROM users WHERE identifier = @id', { ['@id'] = id }, cb)

-- oxmysql
MySQL.query('SELECT * FROM users WHERE identifier = ?', { id }, cb)

Ainda travado no seu próprio código?

Esta página é o que esse erro costuma significar. Cole o seu console no Server Fixer e ele vai ordenar tudo o que estiver lá e te dizer o que fazer primeiro; e se você preferir não mexer, o ORBIE consegue consertar o script e te devolver o resource pronto para soltar.

bug_reportAbrir o Server Fixer

Para esse tipo de erro, o Script Optimizer detecta os padrões de consulta que causam isso.

Erros que andam junto com este