Friday, October 14, 2011

import csv data to mysql using php

We can import data of CSV into MYSQL via PHP using fgetcsv() function along with some file handling functions. These codes help you to import data from csv file using PHP.



Create Table in bellow formate
CREATE TABLE `users` (
  `id` int(11) NOT NULL auto_increment,
  `first` text,
  `middle` text,
  `last` text,
  `email` text,
  PRIMARY KEY  (`id`)
);

Save Bellow Code in import.php file
<\?php
$con = mysql_connect("HostName", "DataBaseUserName", "DataBasePassword");
mysql_select_db("DataBaseName");

if(isset($_POST['submit']))
{
      $fileExt = $_FILES['importData']['name'];
      $chkExt = explode(".",$fileExt);
      if(strtolower($chkExt[1]) == "csv")
      {
            $fileName = $_FILES['importData']['tmp_name'];
            $handle = fopen($fileName, "r");
            while (($data = fgetcsv($handle, 1000, ",")) !== FALSE)
            {
                   $sql = "INSERT into users(first, middle, last, email) values('".addslashes($data[0])."', '".addslashes($data[1])."', '".addslashes($data[2])."', '".addslashes($data[3])."')";
                   mysql_query($sql) or die(mysql_error());
            }
            fclose($handle);
            echo "Successfully Imported";
      }else{
            echo "Invalid File";
      }
}
?>

<\form action='' method='post' enctype="multipart/form-data">
                Import File : <\input type="file" name='importData' size='20'>
                <\input type='submit' name='submit' value='Submit'>
<\/form>


Note:- Remove "\" from html tags and php opening tags