Comment importer un fichier CSV dans MySQL avec PHP

Dans ce tutoriel, nous allons voir comment importer un fichier csv dans une base de données MySQL à l’aide de PHP. CSV signifie « Comma Separated Values » et contient toutes les données séparées par des virgules.
 
 
Nous allons utiliser trois fichiers:

  • Le fichier index.php qui contiendra une partie de l’interface utilisateur.
  • Le fichier import_csv.php pour connecter MySQL et analyser les données CSV et les stocker dans une table MySQL.
  • Le fichier db_connect.php pour se connecter à la base de donnée.
Créez une base de données

Créez une base de données MySQL nommée ‘test’ par exemple. Si vous avez déjà une base de données de test, exécutez le code ci-dessous dans la fenêtre de requête SQL de la base de données. Comme illustré dans l’image ci-dessous :

CREATE TABLE IF NOT EXISTS `produit` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(256) NOT NULL,
`description` text NOT NULL,
`price` int(255) NOT NULL,
primary key (id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


 
 

Connexion à la base de données MySQL avec PHP

Après avoir créé la table « produit », nous allons créer le fichier db_connect.php pour établir une connexion avec la base de données MySQL.

<?php
	$server = "localhost";
	$username = "root";
	$password = "";
	$db = "test";
	$conn = mysqli_connect($server, $username, $password, $db);
?>

 

Étapes pour importer un fichier CSV dans une base de données MySql à l’aide de PHP

Étape 1: Créez le fichier import_csv.php et ajoutez le code ci-dessous dans ce fichier.

<?php
	// Connect to database
	include("db_connect.php");

	if (isset($_POST["import"])) {
		
		$fileName = $_FILES["file"]["tmp_name"];
		
		if ($_FILES["file"]["size"] > 0) {
			
			$file = fopen($fileName, "r");
			
			while (($column = fgetcsv($file, 10000, ",")) !== FALSE) {
				$sql = "INSERT into produit (id,name,description,price)
					   values ('" . $column[0] . "','" . $column[1] . "','" . $column[2] . "','" . $column[3] . "')";
				$result = mysqli_query($conn, $sql);
				
				if (! empty($result)) {
					$type = "success";
					$message = "Les Données sont importées dans la base de données";
				} else {
					$type = "error";
					$message = "Problème lors de l'importation de données CSV";
				}
			}
		}
	}
	//Retourner à la page index.php
	header('Location: index.php');
	exit;
?>

 
 
Le code ci-dessous est utilisé pour créer une interface permettant de télécharger un fichier CSV.

Étape 2: Créez un nouveau fichier index.php pour afficher le formulaire de téléchargement du fichier CSV. Vous devez ajouter le code ci-dessous dans le fichier index.php.

<!DOCTYPE html>
<html>

<head>
	<title>Comment importer un fichier CSV dans MySQL avec PHP</title>
</head>

<body>
    <h3>Lire l'article sur : <a href="https://waytolearnx.com/2019/07/comment-importer-un-fichier-csv-dans-mysql-avec-php.html" target="_blank">Comment importer un fichier CSV dans MySQL avec PHP</a></h3>

    <form enctype="multipart/form-data" action="import_csv.php" method="post">
        <div class="input-row">
            <label class="col-md-4 control-label">Choisir un fichier CSV</label>
            <input type="file" name="file" id="file" accept=".csv">
            <br />
            <br />
            <button type="submit" id="submit" name="import" class="btn-submit">Import</button>
            <br />
        </div>
    </form>

    <?php
			// Connect to database
			include("db_connect.php");

            $sql = "SELECT * FROM produit";
            $result = mysqli_query($conn, $sql);

            if (mysqli_num_rows($result) > 0) {
    ?>
        <table>
            <thead>
                <tr>
                    <th>Product ID</th>
                    <th>Product Name</th>
                    <th>Description</th>
                    <th>Price</th>
                </tr>
            </thead>
            <?php while ($row = mysqli_fetch_array($result)) { ?>
                <tbody>
                    <tr>
                        <td> <?php  echo $row['id']; ?> </td>
                        <td> <?php  echo $row['name']; ?> </td>
                        <td> <?php  echo $row['description']; ?> </td>
                        <td> <?php  echo $row['price']; ?> </td>
                    </tr>
            <?php } ?>
                </tbody>
        </table>
        <?php } ?>
</body>
</html>
Télécharger le code source en cliquant ici.
QCM sur PHPQCM sur PHP – Les bases – Partie 1QCM sur PHP avec des réponses pour la préparation des entretiens d’embauche, des tests en ligne, aux examens et aux certifications. Ces questions et réponses…Lire plus
Partagez cet article

Une réflexion sur “Comment importer un fichier CSV dans MySQL avec PHP

  • Avatar
    août 1, 2020 à 10:33
    Permalien

    Bonjour.
    Et merci beaucoup pour la solution
    Grâce à vous je réussi a importé le fichier csv dans la base des données.

    Maintenant comment mettre à jour ma base de données toujours en important un fichier csv ???

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *