miércoles, 18 de marzo de 2015

The following code should help beginner PHP/MySQL developers who are looking for an easy way to import a CSV or comma delimited file into a mysql database.  This example adds new contacts into the contacts table from an uploaded CSV file, populating the following three fields: (contact_first, contact_last, contact_email).

Click to view files:
I've included the PHP code below that 'does all the work'.  Click the 'import.php' link above to view the full code.
<?
    //get the csv file
    $file = $_FILES[csv][tmp_name];
    $handle = fopen($file,"r");
   
    //loop through the csv file and insert into database
    do {
        if ($data[0]) {
            mysql_query("INSERT INTO contacts_tmp (contact_first, contact_last, contact_email) VALUES
                (
                    '".addslashes($data[0])."',
                    '".addslashes($data[1])."',
                    '".addslashes($data[2])."'
                )
            ");
        }
    } while ($data = fgetcsv($handle,1000,",","'"));
    //
?>

############
<?php 
//connect to the database $connect mysql_connect("localhost","username","password"); mysql_select_db("mydatabase",$connect); //select the table
//
if ($_FILES[csv][size] > 0) {

    
//get the csv file
    
$file $_FILES[csv][tmp_name];
    
$handle fopen($file,"r");
    
    
//loop through the csv file and insert into database
    
do {
        if (
$data[0]) {
            
mysql_query("INSERT INTO contacts (contact_first, contact_last, contact_email) VALUES
                (
                    '"
.addslashes($data[0])."',
                    '"
.addslashes($data[1])."',
                    '"
.addslashes($data[2])."'
                )
            "
);
        }
    } while (
$data fgetcsv($handle,1000,",","'"));
    
//

    //redirect
    
header('Location: import.php?success=1'); die;

}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Import a CSV File with PHP & MySQL</title>
</head>

<body>

<?php if (!empty($_GET[success])) { echo "<b>Your file has been imported.</b><br><br>"; } //generic success notice ?>
<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
  Choose your file: <br />
  <input name="csv" type="file" id="csv" />
  <input type="submit" name="Submit" value="Submit" />
</form>

</body>
</html>  




#################################
SET FOREIGN_KEY_CHECKS=0;
DROP TABLE IF EXISTS `contacts`;
CREATE TABLE `contacts` (
  `contact_id` int(11) NOT NULL auto_increment,
  `contact_first` varchar(255) character set latin1 default NULL,
  `contact_last` varchar(255) character set latin1 default NULL,
  `contact_email` varchar(255) character set latin1 default NULL,
  PRIMARY KEY  (`contact_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
 
################
 
 
Jim,Smith,jim@tester.com
Joe,Tester,joe@tester.com 

No hay comentarios:

Publicar un comentario