Comment puis-je importer et dépanner efficacement des données CSV dans MySQL à l'aide de PHP ?

Patricia Arquette
Libérer: 2024-11-19 08:38:02
original
400 Les gens l'ont consulté

How Can I Efficiently Import and Troubleshoot CSV Data into MySQL using PHP?

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);
?>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal