How to Import CSV File in MySQL PHP

In this tutorial, we are going to see how to import a CSV file into MySQL database using PHP. CSV stands for Comma Separated Values and contains all the data separated by commas.

We will use three files:

  • The index.php file which will contain part of the user interface.
  • The import_csv.php file to connect MySQL and parse the CSV data and store it in a MySQL table.
  • The db_connect.php file to connect to the database.


Create a database

Create a MySQL database named ‘test’ for example. If you already have a test database, run the code below in the SQL query window of the database. As shown in the screenshot below:

`name` varchar(256) NOT NULL,
`description` text NOT NULL,
`price` int(255) NOT NULL,
primary key (id)


Connection to the MySQL database with PHP

After creating the “product” table, we will create the file db_connect.php to establish a connection with the MySQL database.

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


Steps to import a CSV file into a MySql database using PHP

Step 1: Create the import_csv.php file and add the below code into this file.

	// Connect to database

	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 product (id,name,description,price)
					   values ('" . $column[0] . "','" . $column[1] . "','" . $column[2] . "','" . $column[3] . "')";
				$result = mysqli_query($conn, $sql);
				if (! empty($result)) {
					$type = "success";
					$message = "Data is imported into the database";
				} else {
					$type = "error";
					$message = "Problem importing CSV data";
	//Return to the index page
	header('Location: index.php');

The code below is used to create an interface to upload a CSV file.

Step 2: Create index.php file to display the CSV file. You need to add the code below to the index.php file.

<!DOCTYPE html>

	<title>Import CSV File in MySQL PHP</title>

    <h3>Read the article on : <a href="" target="_blank">How to Import CSV File in MySQL 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">Choose a CSV file</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 />

			// Connect to database

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

            if (mysqli_num_rows($result) > 0) {
                    <th>Product ID</th>
                    <th>Product Name</th>
            <?php while ($row = mysqli_fetch_array($result)) { ?>
                        <td> <?php  echo $row['id']; ?> </td>
                        <td> <?php  echo $row['name']; ?> </td>
                        <td> <?php  echo $row['description']; ?> </td>
                        <td> <?php  echo $row['price']; ?> </td>
            <?php } ?>
        <?php } ?>
mcqMCQPractice competitive and technical Multiple Choice Questions and Answers (MCQs) with simple and logical explanations to prepare for tests and interviews.Read More

Leave a Reply

Your email address will not be published. Required fields are marked *