Columna desconocida 'x' en 'field list'
Un script busca información que la base de datos no tiene, casi siempre porque su archivo de instalación nunca se importó.
Haz esto primero
Busca el archivo .sql que venía con ese script e impórtalo en tu base de datos.
Qué significa
La consulta es SQL válido pero nombra una columna (o una tabla) que la base de datos no tiene. El esquema y el código no están de acuerdo.
Qué lo provoca
Ordenado por la frecuencia con la que es la respuesta.
- 1
El SQL del recurso nunca se importó
Cada script que guarda datos trae un archivo .sql. Saltárselo es la causa habitual, sobre todo con un script instalado con prisa.
- 2
El script espera el esquema de otro framework
ESX usa
users/identifier, QBCore usaplayers/citizenid. Un script escrito para uno, corriendo contra el otro, pide columnas que no existen. - 3
Una diferencia de versión del framework
ESX Legacy movió varias columnas; QBCore renombró algunas entre versiones. La columna existe en la versión para la que se escribió el script, no en la tuya.
- 4
Una errata, o las mayúsculas mal
En MySQL sobre Linux los nombres de columna distinguen mayúsculas según la configuración.
- 5
«Table doesn't exist»
El mismo problema un nivel más arriba: el .sql no se importó en absoluto, o se importó en una base distinta de la que dice la cadena de conexión.
Cómo saber cuál es el tuyo
SHOW COLUMNS FROM users;
Compará con lo que pide la consulta. Si la que falta es la tabla, mirá a qué base de datos estás conectado de verdad:
SELECT DATABASE();
Dónde mirar
El archivo .sql que vino con el recurso, y el esquema propio del framework.
Cómo arreglarlo
Importá el SQL del recurso, y después comprobalo:
mysql -u user -p tubasededatos < recurso/install.sql
Añadí una columna que falta sin tocar el resto:
ALTER TABLE users ADD COLUMN phone VARCHAR(20) NULL;
¿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.