phpMyAdmin
 sql >> Base de données >  >> Database Tools >> phpMyAdmin

En Php pour obtenir dynamiquement le nom de la table et les champs du fichier csv et importer dans MYSQL

J'ai implémenté ce code et c'est du code testé. Je pense que c'est très utile

Vous avez suivi une règle :-

1.votre fichier csv selon le nom de la table de la base de données (ex :le nom de la table db est users alors csv devrait être users.csv)

2.La première ligne de votre fichier csv doit être le nom des champs de la table db (ex :identifiant, nom, etc.) après le début de la saisie de vos données

3. vous pouvez télécharger la classe de source de données à partir de :- http://code.google .com/p/php-csv-parser/ car j'ai besoin du code ci-dessous :require_once 'CSV/DataSource.php' ;

<?php
ini_set('memory_limit','512M');
$dbhost = "localhost";
$dbname = "excel_import";
$dbuser = "root";
$dbpass = "";

$conn=mysql_connect ($dbhost, $dbuser, $dbpass) or die ("I cannot connect to the database because: " . mysql_error());
mysql_select_db($dbname) or die("Unable to select database because: " . mysql_error());


require_once 'CSV/DataSource.php';


$filename = "users.csv";
$ext = explode(".",$filename);
$path = "uploads/".$filename;

$dbtable = $ext[0];

import_csv($dbtable, $path);


function import_csv($dbtable, $csv_file_name_with_path)
{
    $csv = new File_CSV_DataSource;
    $csv->load($csv_file_name_with_path);

    $csvData = $csv->connect();

    $res='';
    foreach($csvData  as $key)
    {
        $myKey ='';
        $myVal='';
        foreach($key as $k=>$v)
        {
            $myKey .=$k.',';
            $myVal .="'".$v."',";
          }

        $myKey = substr($myKey, 0, -1);
        $myVal = substr($myVal, 0, -1); 
        $query="insert into ".$dbtable." ($myKey)values($myVal)";
        $res=  mysql_query($query);

    }

    if($res ==1)
    {

                echo "record successfully Import.";

    }else{

                echo "record not successfully Import.";
    }
}