Importation de données CSV à l'aide de PHP/MySQL : dépannage et optimisation
Cet article aborde les problèmes de dépannage et d'optimisation liés à l'importation de données CSV dans MySQL à l'aide de PHP.
Préoccupations et solutions :
1. Texte affiché sous la forme 0 :
Assurez-vous que votre fichier CSV utilise le bon délimiteur, spécifié dans fgetcsv. Vérifiez le type de données de la colonne "texte" dans la base de données. Si le type de texte n'est pas défini, les données importées peuvent être tronquées.
2. Données entre guillemets :
Si les données de votre fichier CSV sont entre guillemets, vous pouvez le spécifier dans fgetcsv à l'aide du paramètre enclos_by. Cela supprimera les guillemets des données importées.
3. Ignorer les lignes d'en-tête :
Pour ignorer les lignes d'en-tête, utilisez la fonction fgets pour lire et supprimer les premières lignes X du fichier CSV avant de commencer à importer les données.
4. Préservation du format des données :
MySQL conserve le format des données par défaut. Les valeurs décimales resteront sous forme décimale après avoir été importées dans la base de données.
5. Limite de temps d'exécution :
Si vous rencontrez une erreur « Durée d'exécution maximale dépassée », essayez d'augmenter le paramètre max_execution_time dans votre configuration PHP (php.ini). Vous pouvez également diviser le processus d'importation en lots plus petits pour réduire la charge sur le serveur.
Optimisation :
Utiliser la fonctionnalité LOAD DATA INFILE :
MySQL propose la fonctionnalité LOAD DATA INFILE, qui vous permet d'importer des fichiers CSV directement dans la base de données sans boucle ni analyse. Cette méthode est nettement plus rapide que l'utilisation de boucles PHP.
Exemple d'utilisation de LOAD DATA INFILE :
<?php $query = <<<EOF LOAD DATA INFILE '$fileName' INTO TABLE tableName FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' (field1,field2,field3,etc) EOF; $db->query($query); ?>
En utilisant LOAD DATA INFILE, vous pouvez rationaliser le processus d'importation CSV. , améliorez les performances et réduisez la consommation de ressources.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!