Colonne inconnue « x » dans « field list »
Un script cherche une information que la base n'a pas, presque toujours parce que son fichier d'installation n'a jamais été importé.
Faites d'abord ceci
Trouvez le fichier .sql fourni avec ce script et importez-le dans votre base.
Ce que ça veut dire
La requête est du SQL valide mais nomme une colonne (ou une table) que la base n'a pas. Le schéma et le code ne sont pas d'accord.
Ce qui la provoque
Classé par fréquence : la cause la plus probable en premier.
- 1
Le SQL de la ressource n'a jamais été importé
Chaque script qui stocke des données livre un fichier .sql. L'oublier est la cause habituelle, surtout pour un script installé à la hâte.
- 2
Le script attend le schéma d'un autre framework
ESX utilise
users/identifier, QBCoreplayers/citizenid. Un script écrit pour l'un, exécuté contre l'autre, demande des colonnes qui n'existent pas. - 3
Une différence de version du framework
ESX Legacy a déplacé plusieurs colonnes ; QBCore en a renommé certaines entre deux versions. La colonne existe dans la version pour laquelle le script a été écrit, pas dans la vôtre.
- 4
Une faute de frappe, ou la mauvaise casse
Sur MySQL sous Linux, les noms de colonnes sont sensibles à la casse selon la configuration.
- 5
« Table doesn't exist »
Le même problème un cran plus haut : le .sql n'a pas été importé du tout, ou l'a été dans une autre base que celle de la chaîne de connexion.
Comment savoir laquelle est la vôtre
SHOW COLUMNS FROM users;
Comparez à ce que demande la requête. Si c'est la table qui manque, vérifiez à quelle base vous êtes réellement connecté :
SELECT DATABASE();
Où regarder
Le fichier .sql livré avec la ressource, et le schéma du framework lui-même.
Comment la corriger
Importez le SQL de la ressource, puis vérifiez :
mysql -u user -p votrebase < ressource/install.sql
Ajoutez une colonne manquante sans toucher au reste :
ALTER TABLE users ADD COLUMN phone VARCHAR(20) NULL;
Toujours bloqué sur votre propre code ?
Cette page explique ce que cette erreur signifie en général. Collez votre console dans Server Fixer : il classera tout ce qui s'y trouve et vous dira quoi faire en premier ; et si vous préférez ne pas y toucher, ORBIE peut réparer le script et vous rendre la ressource prête à déposer.
bug_reportOuvrir le Server FixerPour ce type d'erreur, le Script Optimizer repère les motifs de requête à l'origine de ceci.