Come utilizzare PHP script per importare dati CSV in MySQL

March 1

Come utilizzare PHP script per importare dati CSV in MySQL


Importazione di dati CSV nel database open source MySQL può essere impegnativo. Le persone spesso preferiscono organizzare le informazioni in fogli di calcolo mentre stanno scrivendo, ma una volta che sono fatti che devono importarlo in MySQL, un compito arduo per fare a mano. Un modo semplice per aggirare questo problema è quello di creare uno script PHP che importa automaticamente tutti i dati.

istruzione

1 Aprire il file CSV che si desidera aprire in un editor di testo come Blocco note e di esaminare il formato del file. In particolare, si noti che carattere utilizzato come separatore tra i campi. Ad esempio, se il file CSV contiene il testo "John, Smith; 6; 58" Si noti che il separatore è il punto e virgola ( ";").

2 Controllare se la prima riga del file contiene i nomi dei campi che anche esistere nel database. Ad esempio, se ogni riga contiene nome di una persona, il cognome, l'altezza e l'età, assicurarsi che la prima riga contiene la colonna appropriata, come ad esempio "Nome, cognome, altezza, età". Se non esiste, o che non corrisponde ai campi nel database, si dovrebbe correggerlo.

3 Creare la tabella di MySQL che il file CSV verrà importato, se non esiste già. Se non siete sicuri di come fare questo, consultare la sezione risorse di questo articolo. Assicurarsi che i nomi dei campi della tabella di MySQL corrispondono a quelle nel file CSV.

4 Copiare lo script PHP di seguito in un editor di testo come Blocco note, e inserire le informazioni del database in seconda linea. Cambiare le parole in maiuscolo in modo da riflettere le informazioni. Ad esempio, rimuovere "username" e inserire il proprio nome utente. Salvare il file come file .php. Nel blocco note questo viene fatto premendo il tasto "File" e poi "Salva con nome" nella barra dei menu in alto, scegliendo "Tutti i file" nell'elenco a discesa marcata "Salva come:" e premendo "Salva".

Ecco il codice per copiare:

<? Php

$ DbInfo = array ( 'hostname' => 'hostname', 'dbName' => 'DB_NAME', 'username' => 'username', 'password' => 'password', 'tableName' => 'TABLE_NAME') ;

fwrite (STDOUT, "Si prega di inserire il percorso completo del file CSV: \ n");

$ Fullpath = fgets (STDIN);

fwrite (STDOUT, "Si prega di inserire il separatore di campo: \ n");

$ Sep = fgets (stdin);

$ Prima = true;

if (($ handle = fopen ($ fullpath, "r")) === FALSE) die ( "Impossibile aprire il file CSV immesso");

for ($ i = 0; ($ data = fgetcsv ($ maniglia, 0, $ settembre)) == false;! $ i ++) {

$ Num = count ($ data);

if ($ prima) {

if ($ num == 0 || ($ num == 1 && $ data [0] == null)) die ( "file CSV deve contenere almeno un campo!");

$ TotalRows = $ num;

$ Fieldnames = $ dati;

$ First = false;

} altro {

if ($ num = $ totalRows!) die ( "Riga non contiene il numero di campi.");

$ valori [$ i] = $ data;

}}

fclose ($ handle);

$ Con = mysql_connect ($ dbInfo [ 'hostname'], $ dbInfo [ 'username'], $ dbInfo [ 'password']) or die ( 'Impossibile connettersi:'. Mysql_error ());

mysql_select_db ($ dbInfo [ 'dbName'], $ con);

foreach ($ valori as $ v) {

foreach ($ v come & $ i) {

$ I = mysql_real_escape_string ($ i);

mysql_query ( "INSERT INTO". $ dbInfo [ 'tableName']. "(". implode ( ',', $ FieldNames). ") VALORI ( '". implodere ( "', '", $ v). "' ) ");

}}

mysql_close ($ con);

?>

5 Aprire la riga di comando. In Windows, questo viene fatto premendo il pulsante Start, scegliere "Tutti i programmi", e poi "Accessori" e premendo su "Prompt dei comandi". Immettere il percorso per l'eseguibile PHP e il percorso dello script PHP per eseguirlo; per esempio, 'C: \ PHP5 \ php.exe "C: Scripts \ php \ script.php"'. Immettere il percorso completo del file CSV quando richiesto dallo script e attendere che l'esecuzione di script. Questo potrebbe richiedere del tempo. Se si verificano errori, assicurarsi di aver seguito tutti i passaggi correttamente.