Bonjour,
J’essaye d’uploader un fichier CSV pour mettre à jour une bdd MySQL
J’ai déjà fait la partie "upload" mais quand j’essaye d’insérer le contenu du CSV dans la base, ça ne marche pas et ça ne montre aucune erreur (ou alors je ne sais pas les afficher).
Ce qui est bizarre, c’est que quand j’essaye exactement la même commande SQL dans l’interprète SQL de phpMyAdmin, la commande fonctionne et toutes les lignes sont insérées.
Voilà un extrait de mon code qui est censé insérer les lignes dans la base de données:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?php echo "Transfert réussi"; //$connexion -> query('DELETE from bdd.table WHERE 1;'); $req=$connexion->query(" LOAD DATA INFILE '/tmp/uploaded/tmp.csv' INTO TABLE bdd.table FIELDS ESCAPED BY '\\' TERMINATED BY ';' LINES TERMINATED BY '\r\n';"); if ($req){ echo "<h2>Ajout dans la base de données effectué avec succès</h2>"; } else{ echo "ERREUR: Echec lors de l'ajout dans la base de données <br/>"; var_dump($req); } ?> |
Le fichier contient environ 16 000 lignes pour 3Mo.
Le fichier log d’erreur de php ne donne rien. J’ai déjà essayé de modifier le paramètre de LINES TERMINATED BY
mais ça ne marche pas non plus.
Je précise que dans le script, je fait un chmod 777
sur le fichier /tmp/uploaded/tmp.csv avant l’exécution de la requête.
Je précise aussi qu’une fois le fichier uploadé sur le serveur, je ne le modifie jamais. Je ne fais que le déplacer dans le répertoire adéquat pour changer les permissions.
Merci par avance à ceux qui m’aideront
EDIT: Je n’arrive pas à colorer mon code, désolé pour vos yeux