Lors de l'importation d'un fichier CSV (codes NAF), avec phpMyAdmin, j'ai l'erreur suivante: "Nombre de colonnes invalides dans les données CSV à la ligne 1." alors que j'ai 3 colonnes dans la ligne de titre comme dans les lignes de données. Je ne vois donc pas d'où peut venir cette erreur. Extrait de mon fichier: ligne;code;intitule 2;SECTION A;AGRICULTURE, SYLVICULTURE ET PÊCHE 4;1;Culture et production animale, chasse et services annexes 6;01.1;Cultures non permanentes 7;01.11;Culture de céréales (à l'exception du riz), de légumineuses et de graines oléagineuses 8;01.11Z;Culture de céréales (à l'exception du riz), de légumineuses et de graines oléagineuses 9;01.12;Culture du riz 10;01.12Z;Culture du riz 11;01.13;Culture de légumes, de melons, de racines et de tubercules 12;01.13Z;Culture de légumes, de melons, de racines et de tubercules
S'il MySQL vous dit qu'il y a une erreur, c'est qu'il y a une erreur.
Il faudrait bien préciser quels sont les délimiteurs utilisés dans la requête LOAD DATA et que la virgule n'est pas un délimiteur. Ne pas oublier que CSV veut dire Comma Separated Value, donc que la virgule est un séparateur de champ par défaut.
------------------------------------------------------------------------------------------------------------ Wampserver 3.2.4 32 bit - Apache 2.4.46c - PHP 8.0.2…5.6.40 - MySQL 5.7.33 - MariaDB 10.5.9 Wampserver 3.2.4 64 bit - Apache 2.4.46c - PHP 8.0.2…5.6.40 - MySQL 5.7.33/8.0.23 - MariaDB 10.5.9 PhPMyadmin 5.0.4 - MysqlDumper 1.24.5 on W10 and W7 Pro 64 bit Documentation Apache - Documentation PHP - Documentation MySQL - Wampserver install files & addons « Ce n'est pas parce qu'ils sont nombreux à avoir tort, qu'ils ont forcément raison. Coluche » « It's not because they are many to be wrong, they are necessarily right. Coluche »
Bonjour, il arrive que l'on ait créé 4 colonnes dans sa table et que l'on veuille insérer un fichier CSV avec 3 colonnes. IL arrive aussi que l'on veuille insérer un fichier csv avec une colonne vide pour représenter un index de ligne et mysql ne la prend pas en compte. Il veut le nombre exact de colonnes, comme dans la table, avec au moins une valeur. Il veut donc, au moins sur une ligne complète, une valeur à chaque colonne. Cela fera, pour phpmyadmin ou mysql, la délimitation nécessaire pour repérer les colonnes, soit sous forme de virgule ou de point virgule voire tabulation. Je ne sais pas si j'ai été clair.
> soit sous forme de virgule ou de point virgule voire tabulation. Les délimiteurs DOIVENT être précisés AVANT de charger les données, par exemple :
LOAD DATA INFILE 'D:/blabla/monfichier' REPLACE INTO TABLE matable
FIELDS TERMINATED BY ';' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
et on ne peut pas changer de délimiteurs en cours d'insertion des données.
Si la table comporte quatre colonnes, il doit y avoir quatre valeurs sur chaque ligne du fichier csv.
------------------------------------------------------------------------------------------------------------ Wampserver 3.2.4 32 bit - Apache 2.4.46c - PHP 8.0.2…5.6.40 - MySQL 5.7.33 - MariaDB 10.5.9 Wampserver 3.2.4 64 bit - Apache 2.4.46c - PHP 8.0.2…5.6.40 - MySQL 5.7.33/8.0.23 - MariaDB 10.5.9 PhPMyadmin 5.0.4 - MysqlDumper 1.24.5 on W10 and W7 Pro 64 bit Documentation Apache - Documentation PHP - Documentation MySQL - Wampserver install files & addons « Ce n'est pas parce qu'ils sont nombreux à avoir tort, qu'ils ont forcément raison. Coluche » « It's not because they are many to be wrong, they are necessarily right. Coluche »