No existe el export fetchAll / execute en el recurso mysql-async
Un script fue escrito para un sistema de base de datos más viejo que el que tienes instalado.
Haz esto primero
Instala la versión que el script espera, o pídele al vendedor una actualizada.
Qué significa
Un script está llamando a la API de un recurso de base de datos que no es el que tenés instalado. FiveM pasó por tres: mysql-async, después ghmattimysql, ahora oxmysql, y los scripts escritos para uno llaman a exports que los otros no tienen.
Qué lo provoca
Ordenado por la frecuencia con la que es la respuesta.
- 1
El script quiere mysql-async y vos corrés oxmysql
oxmysql trae una capa de compatibilidad, pero hay que activarla y no cubre todo.
- 2
El recurso viejo está instalado pero no arrancado
Está en la carpeta, no está en server.cfg.
- 3
Dos recursos de base de datos a la vez
Los dos instalados, cada uno a medio configurar, y los scripts repartidos entre ellos.
- 4
Un export que nunca existió
fetchSyncera de ghmattimysql;fetchAllera de mysql-async. Ninguno es la API nativa de oxmysql.
Cómo saber cuál es el tuyo
print(GetResourceState('oxmysql'), GetResourceState('mysql-async'))Y después buscá en el script que falla cuál de las APIs usa:
grep -rn "MySQL\.\|exports\['mysql-async'\]\|exports.oxmysql" mi-script/
Dónde mirar
Las llamadas a la base de datos del script, y qué recurso de base de datos arranca server.cfg.
Cómo arreglarlo
Unificá en oxmysql y encendé la capa de compatibilidad para los scripts viejos:
# server.cfg set mysql_connection_string "mysql://user:pass@host/db?charset=utf8mb4" ensure oxmysql # sólo si todavía corrés scripts escritos para las APIs viejas set oxmysql_slow_query_warning 200
Para un script que puedas editar, portá la llamada:
-- mysql-async
MySQL.Async.fetchAll('SELECT * FROM users WHERE identifier = @id', { ['@id'] = id }, cb)
-- oxmysql
MySQL.query('SELECT * FROM users WHERE identifier = ?', { id }, cb)¿Sigues atascado en tu propio código?
Esta página es lo que suele significar este error. Pega tu consola en Server Fixer y ordenará todo lo que haya en ella y te dirá qué hacer primero; y si prefieres no tocarlo, ORBIE puede reparar el script y devolverte el recurso listo para soltar.
bug_reportAbrir el Server FixerPara este tipo de error, el Script Optimizer detecta los patrones de consulta que causan esto.