sql >> Base de Datos >  >> Database Tools >> phpMyAdmin

En Php para obtener dinámicamente el nombre de la tabla y los campos del archivo csv e importarlos a MYSQL

Implementé este código y es un código probado. Creo que es muy útil completo

Tienes que seguir alguna regla:-

1.su archivo csv de acuerdo con el nombre de la tabla de la base de datos (por ejemplo:el nombre de la tabla db es usuarios, entonces csv debería ser usuarios.csv)

2. La primera fila de su archivo csv debe ser el nombre de los campos de la tabla db (por ejemplo:Id, nombre, etc.) después de comenzar su entrada de datos

3. Puede descargar la clase de fuente de datos desde:- http://code.google .com/p/php-csv-parser/ porque tengo un requisito debajo del código: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.";
    }
}