script PHP per importare i dati csv in MySQL

19 FEBBRAIO 2007

Questo è un semplice script che vi permetterà di importare i dati csv nel database. Questo è utile perché si può semplicemente modificare i campi appropriati, caricarlo con il file csv e chiamare dal web e lo farà il resto.

Esso consente di specificare il delimitatore in questo file csv, se si tratta di una virgola, un ecc scheda Permette anche di scegliere la linea di separazione, consente di salvare l'output in un file (conosciuto come un dump dei dati sql).

Permette anche di includere un campo vuoto all'inizio di ogni riga, che di solito è un numero intero incremento automatico chiave primaria.

Questo script è utile soprattutto se non si dispone di phpmyadmin, o non vuoi la seccatura di login e di preferire una soluzione di pochi clic, o se semplicemente sono un ragazzo prompt dei comandi.
Solo assicurarsi che la tabella è già stato creato prima di tentare di eseguire il dump dei dati.
Si prega di inserire i tuoi commenti se si ha qualche bug report.

Scarica il file qui

Tags:
  1. Di lavoro e l'analisi di file di testo CSV & PHP
    15 maggio 2011 alle 17.52
    # 1
  2. Joln
    11 maggio 2011 alle 07:52

    Grande script! Tnx molto

  3. Umair
    2 maggio 2011 a 07:39

    Ciao ...
    Sono di fronte un problema, quando uso questo, la sua mostra un errore che dice
    "Deprecato: la funzione split () è deprecato in C: \ wamp \ www \ test1 \ simplecsvimport.php on line 64
    Il file non è scrivibile, controllare le autorizzazioni. Trovato un totale di 41 record in questo file CSV. "

    Pls risposta, cosa c'è di sbagliato!
    grazie in anticipo!

  4. justkid
    7 Aprile 2011 alle ore 10.25

    Sono molto confuso con questo codice!
    ma io sono abituato a provare su!
    BTW, come il codice html o il campo di chiamare questo codice

  5. Jorge Dias
    14 Marzo 2011 alle 19:01

    Grazie, importatore csv molto buona.
    Ma ho trovato un piccolo problema, funziona solo con file CSV con la struttura: "campo1", "campo2", "campo3", ecc, ma io Hava un file CSV come questo: campo1, campo2, filed3; etc

    L'unica cosa che può cambiare è $ fieldseparator ma come faccio a 'dire' lo script che il file non uso "(delimitatore di campo)?
    Il mio ideia era una combobox con $ fieldseparator (o ;) e un altro con $ fielddelimiter (o niente)

    Grazie in anticipo.

  6. Arrugginito
    3 Febbraio 2011 alle 14:56

    Qualsiasi idea di come ottenere questo script a lavorare per i campi che sono racchiusi tra doppie virgolette in modo che i campi con le virgole in essi non si ottiene letta come una nuova voce?

    Sono dati che include le virgole come gli importi in dollari ed una sezione commenti in cui gli utenti potrebbero avere utilizzato una virgola. Ho bisogno di tutto il campo importato e questo script li tratta come nuovi campi.

  7. qwewe
    23 Gennaio 2011 alle 14:56

    @ Mark Cloyd
    "Indirizzo = valori (indirizzo)
    Ottengo un errore qui come Parse errore: errore di sintassi, inatteso '='

  8. ronbowalker
    15 gennaio 2011 alle 17.54

    @ Joofoo
    Ho caricato il codice, ma non ottengo alcuna informazione aggiornato il database MySQL ...

    CSV contiene:
    Intestazione - username>, password, messaggi, email, immagini, la data
    Row2 -> Bill, amico,,,,
    Jane>, Gal,,,, - Row3
    Row4 -> David, figlio,,,,

    Ed ecco il codice ...:
    <? Php

    / / Set-up da iphonelogin.php file nella cartella "remota" ...
    / * La connessione al db * /
    / / $ Link = mysql_connect ('ronbo.db.6405862.hostedresource.com', 'ronbo', 'Pepper0689') or die ('Impossibile connettersi al DB');
    / / Mysql_select_db ('ronbo', $ link) or die ('Non riesco a selezionare il DB');

    / / https://www.ihappyapps.com/DataFolder/loader.php
    /********************************/
    / * Codice a https://legend.ws/blog/tips-tricks/csv-php-mysql-import/
    / * Modificare le voci qui sotto per riflettere i valori appropriati
    /********************************/
    Databasehost $ = "dbhost";
    $ = Databasename "nome";
    Databasetable $ = "tavola";
    Databaseusername $ = "username";
    Databasepassword $ = "password";
    Fieldseparator $ = "";
    Lineseparator $ = "\ n";
    Csvfile $ = "spreadsheet.csv";
    /********************************/
    addauto $ = 1;
    /********************************/
    $ Salvare = 0;
    Outputfile $ = "output.sql";
    /********************************/

    if (! file_exists ($ csvfile)) {
    echo "Server ricevuto la tua richiesta, ma il file CSV da caricare nel database non è presente ... .. \ n";
    uscita;
    }

    Chunksize $ = 1 * (1024 * 1024);
    $ File = fopen ($ csvfile, "rb");
    if (! $ file) {
    echo "Errore durante l'apertura del file di dati. \ n";
    uscita;
    }

    $ Size = filesize ($ csvfile);

    if (! $ size) {
    echo "Il file è vuoto. \ n";
    uscita;
    }

    $ Con = @ mysql_connect ($ databasehost, $ databaseusername, $ databasepassword) or die (mysql_error ());
    @ Mysql_select_db ($ databasename) or die (mysql_error ());

    Linee $ = 0;
    $ query = "";
    while (! feof ($ file)) {
    $ Csvline = fgets ($ file, $ chunksize);

    Linee $ + +;
    if ($ righe <2) continuare;

    $ Riga = trim ($ csvline, "\ t");

    $ Riga = str_replace ("\ r ","",$ linea);

    /************************************************* ************************************************** *********
    Questa linea sfugge il carattere speciale. rimuoverlo se le voci sono già fuggiti nel file CSV
    ************************************************** ************************************************** ********/
    $ Riga = str_replace ("'"," \ '", $ line);
    /************************************************* ************************************************** ********/

    $ Linearray = explode ($ fieldseparator, $ line);

    $ Linemysql = ("','",$ implode linearray);

    $ Query = "inserire i valori databasetable $ ('$ linemysql');";

    if ($ salvare) $ query .= $ query. "\ N";

    @ Mysql_query ($ query);
    righe echo $ "\ n".
    }
    fclose ($ file);

    Linee $ -= 3;

    @ Mysql_close ($ con);

    <>

    Potevo davvero bisogno di una mano a far presente al lavoro ...
    Ron

  9. joofoo
    11 GENNAIO 2011 a 11:16

    @ Roy
    Ho modificato lo script, in modo che consuma molta meno memoria durante l'elaborazione di file di grandi dimensioni (ha colpito limite php memoria quando ho provato ad usarlo su un file di 100MB CSV). Le modifiche sono le seguenti:


    $chunksize = 1*(1024*1024);
    $file = fopen($csvfile,"rb");
    if(!$file) {
    echo "Error opening data file.\n";
    exit;
    }

    $ Size = filesize ($ csvfile);

    if (! $ size) {
    echo "Il file è vuoto. \ n";
    uscita;
    }

    $ Con = @ mysql_connect ($ databasehost, $ databaseusername, $ databasepassword) or die (mysql_error ());
    @ Mysql_select_db ($ databasename) or die (mysql_error ());

    Linee $ = 0;
    $ query = "";
    while (! feof ($ file)) {
    $ Csvline = fgets ($ file, $ chunksize);

    Linee $ + +;
    if ($ righe <2) continuare;

    $ Riga = trim ($ csvline, "\ t");

    $ Riga = str_replace ("\ r ","",$ linea);

    /************************************************* ************************************************** *********
    Questa linea sfugge il carattere speciale. rimuoverlo se le voci sono già fuggiti nel file CSV
    ************************************************** ************************************************** ********/
    $ Riga = str_replace ("'"," \ '", $ line);
    /************************************************* ************************************************** ********/

    $ Linearray = explode ($ fieldseparator, $ line);

    $ Linemysql = ("','",$ implode linearray);

    $ Query = "inserire i valori databasetable $ ('$ linemysql');";

    if ($ salvare) $ query .= $ query. "\ N";

    @ Mysql_query ($ query);
    righe echo $ "\ n".
    }
    fclose ($ file);

    Linee $ -= 3;

    @ Mysql_close ($ con);

    Grazie,

  10. Khaled A
    11 gen 2011 alle 10:35

    @ Khaled A
    Come posso esportare UTF8 excel per output.sql
    grazie

  11. Khaled A
    11 gen 2011 alle 09:46

    Ho provato lo script ma the output.sql scrittura è roba strana,
    inserire i valori test_excel ('PK |!??????? Q k5 q q q q K5 K5 q ....

    come queste cose
    Come posso risolvere questo problema. qualsiasi formato speciale per il foglio excel?

  12. Warren
    30 Dicembre 2010 alle 18:57

    Ciao ragazzi, volevo solo farvelo sapere che ho trovato qualcuno a scrivere di me il vero programma che mi serve.

  13. Warren
    29 Dicembre 2010 alle 01:31

    @ Warren

    /********************************/
    Questo file include molti cambiamenti tentato fatta da Warren (non un programmatore) il 28 Dic 2010 in poi sulla base di osservazioni al sito di origine ed altre informazioni in modo da rendere questo programma in quello che gli serve. Questo è molto incompleto. Aiuto è molto apprezzato e molto bisogno.

    Lines ha aggiunto di creare caselle di input per il nome del database URL del sito web e la password, ecc
    /********************************/

    Benvenuti in Upload Server Utility

    Questo programma viene eseguito dal vostro PC per compilare due tabelle vuote in un nuovo database MySQL nel tuo sito web: caricamento di ogni nome di file meno l'estensione, con un numero unico di fronte come un contatore, per keywords_categories tabella e quindi assegna il numero 1 nella colonna vuota di fronte alla Colum primo dato da quel file, e aumenta il numero di uno per ogni file elaborato successivamente da quella directory, in modo che il numero assegnata, al nome della categoria nella tabella partite le parole chiave che ne fanno parte che sono poi caricato tabella delle parole chiave.

    Questo viene fatto per tutti i file CSV in una directory specificata per il tuo.

    Essa ignora le prime cinque righe nel file csv.

    URL del sito web:
    Nome database:
    Database Nome Utente:
    Database Password:
    Percorso di directory contenente i file da caricare:

    /********************************/
    Domanda
    Come faccio ad avere dati di cui sopra da caselle di input in programma al livello di quelle richieste qui di seguito?
    /********************************/

    <? Php
    /********************************/
    Linea aggiunto per evitare timeout su file di grandi dimensioni.
    /********************************/

    set_time_limit (0);

    /********************************/
    Ottenere i nomi dei file dei file da elaborare, rimuovere l'estensione del nome del file poi li usa per caricare tutti i nomi di categoria per keywords_categories tavolo.
    /********************************/

    /********************************/
    Rimuove file extension nome
    copiato da PerlMonks org /? node_id = 151.232
    /********************************/

    sub parse_out_extension {
    die ("Nessun nome di file da analizzare. \ n") if (@ _!);

    my ($ file) = @ _;
    my @ pezzi;

    map {push (@ pezzi, $ _)} split (/ \ /, $ file.);

    il mio $ fine = pop (@ pezzi);
    $ File = ~ s / \ $ fine / /.

    return ($ file) se $ file;

    /********************************/
    / * Codice originale a https://legend.ws/blog/tips-tricks/csv-php-mysql-import/
    / * Modificare le voci qui sotto per riflettere i valori appropriati
    /********************************/
    Databasehost $ = "localhost";
    $ = Databasename "test";
    Databasetable $ = "campione";
    Databaseusername $ = "test";
    Databasepassword $ = "";
    Fieldseparator $ = "";
    Lineseparator $ = "\ n";
    Csvfile $ = "filename.csv";
    /********************************/
    / * Vuoi aggiungere un campo ampty all'inizio di questi record?
    / * Nota di Warren, nel caso delle parole chiave che sono la prima colonna di dati in ogni file, su un file alla volta questo nuovo posto vuoto Frot coum frastuono delle parole chiave deve essere cambiata in modo che cattura il numero assegnato al categoria nome che è composto dal nome del file meno l'estensione e lo inserisce in questa nuova colonna vuota per primo.
    / * Questo è utile se si dispone di una tabella con il primo campo è un numero intero auto_increment. Nota di Warren. Questo è ciò che è necessario nel caso del exteniosn nomi di file che sono meno upoaded keywords_categories a tavola.
    / * E il file CSV non ha come campo vuoto prima del record.
    / * Set 1 per sì e 0 per il no. ATTENZIONE: non si imposta a 1 se non siete sicuri.
    / * Questo è possibile scaricare i dati nei campi sbagliato se questo campo aggiuntivo non esiste nella tabella. Nota di Warren probabilmente non ho bisogno di questo file il mio caso, ma solo una congettura da parte mia, ma c'è bisogno di vedere se qualsiasi necessità.
    /********************************/
    addauto $ = 1;
    /********************************/
    / * Volete salvare le query mysql in un file? Se sì impostare $ salvare a 1.
    / * Il permesso sul file deve essere impostato a 777. Sia caricare un file di esempio tramite FTP e
    / * Cambiare i permessi, o eseguire al prompt: output.sql toccare & & chmod 777 output.sql
    /********************************/
    $ Salvare = 0;
    Outputfile $ = "output.sql";
    /********************************/

    if (! file_exists ($ csvfile)) {
    echo "File non trovato. Assicurarsi che si è specificato il percorso corretto \ n ".
    uscita;
    }

    $ File = fopen ($ csvfile, "r");

    if (! $ file) {
    echo "Errore durante l'apertura del file di dati. \ n";
    uscita;
    }

    $ Size = filesize ($ csvfile);

    if (! $ size) {
    echo "Il file è vuoto. \ n";
    uscita;
    }

    $ Csvcontent = fread ($ file, $ size);

    fclose ($ file);

    $ Con = @ mysql_connect ($ databasehost, $ databaseusername, $ databasepassword) or die (mysql_error ());
    @ Mysql_select_db ($ databasename) or die (mysql_error ());

    /********************************/
    Per evitare di inserire le prime quattro file di adveristing testo di intestazione e una riga vuota. La linea uguale a zero il codice è stato sostituito con il seguente codice.
    /********************************/

    linee = $ 1; (Il valore del contatore è 1)
    $ query = "";
    $ Linearray = array ();

    foreach (split ($ lineseparator, csvcontent $) di $ riga) {

    $ Righe + +; (assegna la prima linea # 2 (header)

    if ($ righe> = 5) {(inizio ore # 5 "qualcosa maggiore o uguale a 5?)

    $ query = "";
    $ Linearray = array ();

    foreach (split ($ lineseparator, csvcontent $) di $ riga) {

    Linee $ + +;

    $ Riga = trim ($ riga, "\ t");

    $ Riga = str_replace ("\ r ","",$ linea);

    /************************************
    Questa linea sfugge il carattere speciale. rimuoverlo se le voci sono già fuggiti nel file CSV
    ************************************/
    $ Riga = str_replace ("'"," \ '", $ line);
    /*************************************/

    $ Linearray = explode ($ fieldseparator, $ line);

    $ Linemysql = ("','",$ implode linearray);

    if ($ addauto)
    $ "Si inserisce in valori di query = $ databasetable (",'$');"; linemysql
    altro
    $ Query = "inserire i valori databasetable $ ('$ linemysql');";

    $ $ query .= query. "\ N";

    /************************************
    Questo pezzo di codice riportato di seguito è stato aggiunto per mostrare subito i messaggi di errore.
    ************************************/

    $ Risultato = mysql_query ($ query);

    / / Controllare il risultato
    / / Questo mostra la query effettiva inviati a MySQL, e l'errore. Utile per il debug.
    if (! $ risultato) {
    $ Messaggio = 'query non valida:'. mysql_error (). "\ N";
    $ Messaggio .= 'intera query:'. $ Query;
    die ($ messaggio)
    }

    @ Mysql_close ($ con);

    if ($ salvare) {

    if (! is_writable ($ outputfile)) {
    echo "Il file non è scrivibile, verifica i permessi. \ n";
    }

    else {
    $ File2 = fopen ($ outputfile, "w");

    if (! $ file2) {
    echo "Errore nella scrittura del file di output. \ n";
    }
    else {
    fwrite ($ file2, $ query);
    fclose ($ file2);
    }
    }

    }

    echo "Trovati un totale di $ record righe in questo file CSV. \ n";

    ?>

  14. Warren
    28 Dicembre 2010 alle 22:30

    Solo una piccola correzione alla mia richiesta, le due tabelle del database MqSQL che ho citato sono effettivamente chiamati:

    keywords_categories

    parole chiave

  15. Warren
    28 Dicembre 2010 alle 22:10

    @ Warren

    Inoltre, la curiosità appena fuori potrebbe anche elaborare un file txt, (che ha solo un elenco di parole in esso), allo stesso modo?

    (Io sono nuovo in questo, e so che può essere chiesto un sacco, quindi se qualcuno potesse prendere questo piccolo progetto su di me, se è opportuno, forse si potrebbe discutere la mia pagando una piccola somma per il loro tempo a effettuare le modifiche al soddisfare le mie esigenze? Per favore fatemi sapere.)

    La mia e-mail è: wr.spence @ hotmail.com

  16. Warren
    28 Dicembre 2010 alle 21:37

    Io non sono un programmatore. Vedo il tuo script e che potrebbe essere vicino a quello che mi serve, o potrebbe forse costituire la base di quello che mi serve, io non sono sicuro.

    Ho bisogno di eseguire la stessa funzione di caricamento di più e più volte, ma da un altro sub-directory di volta in volta dal mio disco fisso, per un elenco di file CSV, e di un diverso MySQL DB ogni volta (su un sito web differret ogni volta). Nella maggior parte dei casi, il db non avrà tutti i dati in essa, ma sarebbe l'ideale (ma non essenziali) se lo script può ancora lavorare con un db che ha avuto i dati, senza modificare i dati esistenti).

    Ho bisogno di accedere al db sul server (dovrebbe chiedermi per l'URL del sito e db nomi utente e password, ecc.)

    Ho bisogno di qualcosa che mi permette di navigare e scegliere un nome di directory sul mio hard disk, o entrare.

    Poi processo ogni file csv in tale directory, uno dopo l'altro, come segue:

    Su ogni file ho bisogno di prendere prima il nome del file (meno l'estensione) e caricarlo sul db nella categoria tabella. Questa tabella contiene una chiave numerata che ha poi assegnato a quel nome.

    Ho quindi bisogno di script per caricare solo la Colum parola (1 ° Colum di dati) del file a parole tavolo e aggiungere il nubmer di corrispondenza per il nome della categoria dal primo file.

    Va notato che il file CSV spesso contiene tre righe di testo di intestazione e una riga vuota, tutti e quattro di cui voglio ignorati e non caricati. Ci sono spesso delle righe vuote a eend te del file voglio anche a ignorare, queste, così come ignorare le altre colonne che possono essere o non essere nel file CSV. In alcuni casi il file CSV non può avere alcuna intestazione o le altre colonne.

    Poi file successivo, fino a che non esaurisce i file nella directory.

    Poi mi piacerebbe che mi dica "Processo completo.", E se gli eventuali errori di dirmelo.

    Chi di voi ragazzi mi aiutare con questo?

  17. Alfa
    26 Dicembre 2010 alle 18:32

    Grazie per aver condiviso Excel to MySQL script, questo è molto utile per me.

  18. Pruthvi
    24 Dicembre, 2010 alle 16:09

    ya il codice funziona, ma ora sto ottenendo i miei dati racchiusi tra virgolette @ Suman

  19. Suman
    23 Dicembre 2010 alle 14:18

    Suman :
    @ Pruthvi
    Ciao,
    Si prega di utilizzare il soffietto codice dato ... ...

  20. Suman
    23 Dicembre 2010 alle 14:16

    @ Pruthvi

    Ciao,

    Si prega di utilizzare il soffietto codice dato ... ...

  21. Suman
    23 Dicembre 2010 alle 14:12

    Grate E 'Codice' davvero utile a tutti gli sviluppatori PHP.

  22. Pruthvi
    23 Dicembre 2010 alle 09:48

    si può spiegare il codice che si desidera sostituire @ mysql_query ($ query); con la u dichiarazioni ha dato, ma mostra un messaggio di errore $ non è definita @ Andrew Pesce

  23. Pruthvi
    23 dicembre 2010 a 09:31

    stesso problema con me @ Andrew Pesce

  24. Pruthvi
    23 Dicembre 2010 alle 09:30

    ultima evoluzione del codice in grado di rilevare il no di righe nel file csv ma ​​la sua non è la visualizzazione della tabella

  25. Pruthvi
    23 dicembre 2010 a 08:52

    il codice sta restituendo l'indicazione che essa couldnt trovare il file csv ...
    wat potrebbe essere il problema ....

  26. Andrew Pesce
    10 Dicembre 2010 alle 15:28

    Ok, trovato il problema. Ho avuto mispelt il nome della tabella. Ma solo trovato il problema quando avevo aggiunto il seguente codice, che restituirà un errore se l'sql non riesce. Attualmente lo script non dire se c'è stato un problema.
    Quindi, cambiare la riga
    @ Mysql_query ($ query);

    a tutti i seguenti: -

    $ Risultato = mysql_query ($ query);

    / / Controllare il risultato
    / / Questo mostra la query effettiva inviati a MySQL, e l'errore. Utile per il debug.
    if (! $ risultato) {
    $ Messaggio = 'query non valida:'. mysql_error (). "\ N";
    $ Messaggio .= 'intera query:'. $ Query;
    die ($ messaggio)

    Speranza che aiuta qualcuno. Mi ha fatto.
    AJ

    @ Andrea Pesce

  27. Andrew Pesce
    9 dicembre 2010 alle 16:26

    Quando ho eseguito questo script utilizzando un csv che so importazioni correttamente utilizzando PHP Admin, lo script viene eseguito, riporta il numero corretto di righe con il messaggio "Trovato un totale di 193 record in questo file CSV." Ma nessuno dei dati appare in la tabella. Ho fatto le modifiche al CSV in modo che possa vedere se i dati vengono messi in tavola e non lo è. Tutte le idee?
    AJ

  28. Craig
    8 Dicembre 2010 alle 01:20

    Il mio file di importazione CSV ha anche virgolette intorno a ogni campo (soprattutto per evitare problemi se ho bisogno di importare in Excel in modo che non inseriscono i dati), così ho avuto questo problema in cui è stato inserito il record con quotazioni intorno ai dati. Ho messo a nudo tutte le virgolette doppie con l'aggiunta di questa riga:

    $ Riga = str_replace (linea "\ "","",$);

    dopo questa riga:

    $ Riga = str_replace ("\ r ","",$ linea);

    e la nuova linea sostituisce le virgolette doppie con niente. E 'la stessa linea di prima tranne che è la rimozione \ "invece di \ r (le virgolette doppie invece di ritorni a capo).

    @ Neady

  29. lumaca
    1 dicembre 2010 alle 17:29

    Un programma di grande poco.

    C'è un modo per sostituire i dati in una cella es. 'Città' nel csv e modificarlo in un valore da una pagina precedente come un _SESSION $ o $ _POST valore?

  30. Evan Islam
    30 novembre 2010 alle 17:23

    Questo è grande ... molto facile da implementare. Ora devo capire come utilizzare questa o uno script simile a caricare. Xls file con file. Csv

  31. admin
    29 novembre 2010 alle 16:57

    @ Mike
    Si può provare ad aggiungere:
    set_time_limit (0);
    proprio all'inizio? (Subito dopo il tag di apertura php)

  32. Mike
    18 novembre 2010 alle 21:48

    @ Esclusiva Tutorials
    C'è un modo per avere Non è tempo fuori? È perfettamente compatibile con 100k record, ma quando vado per qualcosa di grande come un mil o più, corre per circa 20 secondi poi va a schermo vuoto e annunci nessun record.? Grazie.

  33. neady
    25 Ottobre 2010 alle 18:21

    Avendo esatto lo stesso problema, chiunque può aiutare per favore?

    Roy :
    Ciao,
    Io uso questo script per importare un file CSV datafeed a MySQL.
    L'unico problema che ho, è che le virgolette "" sono inserite anche nel mio tabelle
    Delimitatore:, (Komma)
    Allegato: "(aanhalingsteken)
    Nuova linea: \ r \ n

  34. Seelam Ravi Kumar
    19 ottobre 2010 alle 17:26

    Ciao amici,

    Avevo bisogno di aiuto urgente da voi ... così gentilmente mi aiuti: ecco il codice ...

    Preparato il file HTML. Ma ho bisogno di una soluzione php ... Gentilmente aiuto per me ... ... ..

    Invia SMS

    Ricevitore numero di cellulare:
    +91

    Rubrica

    Carica file di Excel:

    <!-->
    tipo <input name = "file" = classe "file" onchange = "file_input_hidden" = "javascript: document.getElementBy

    Sender ID:
    :

    YOGA
    GRAFS
    Mobitel

    var = new frmvalidator Validator ('freesms2');
    frmvalidator.addValidation ("frno", "req", "Inserisci numero di cellulare");
    frmvalidator.addValidation ("frno", "num", "campo del numero mobile devono contenere numeri");
    frmvalidator.addValidation ("frno", "minLength = 10000", "Numero di cellulare dovrebbe essere 10.000 cifre");
    frmvalidator.addValidation ("message3", "REQ", "Inserire il testo SMS");

    Con i migliori saluti,
    Ravi Kumar

  35. Rashmi
    10 ottobre 2010 alle 08:41

    <? Php
    $ Newbal = '0 ';
    include "conn.php";
    if (isset ($ _POST ['submit']))
    {
    $ Nomefile = $ _POST ['filename'];
    $ Handle = fopen ("$ nomefile", "r");
    while (($ data fgetcsv = ($ handle, 1000, ","))! == FALSE)
    {

    $ Sql5 = mysql_query ("SELECT * FROM voce in cui l'oggetto = '$ data [0 ]'");
    $ Num = mysql_num_rows ($ sql5);
    if ($ num == 0)
    {
    $ Import = "INSERT INTO elemento (elemento, gweight, dweight) values ​​('$ data [0 ]','$ dati [1 ]','$ dati [2 ]')";
    mysql_query ($ importazione) or die (mysql_error ());
    }
    else {

    echo "$ data [0] uscita";
    }
    }
    fclose ($ handle);
    print "Importa fatto";

    }

    altro
    {
    ?>

    Digitare il nome del file da importare:

    Data
    setIcon ("images / iconCalendar.gif");
    setDate $ MyCalendar-> (date ('d'), la data ('m'), date ('Y'));
    $ MyCalendar-> ("./"); SetPath
    $ MyCalendar-> setYearInterval (2010, 2020);
    $ MyCalendar-> dateAllow ('2008-05-13 ', '2020-12-31');
    setDateFormat $ MyCalendar-> ('Y / m / d');

    $ MyCalendar-> writeScript ();
    ?>

    funziona bene quando a caricare file CSV su localhost, ma mostrano errore di file mancante quando viene eseguito su server.please aiutarmi, grazie in anticipo

  36. La formazione in linea
    29 settembre 2010 alle 10:26

    Credo che questo sia meglio per csv carrello della spesa è in sql.

  37. susylu
    21 set 2010 alle 14:54

    kaundo le doy descarga me aparecen Todos los muchos zip Archivos Ubico en los UNA sola carpeta? ¿

  38. Bhanu
    19 settembre, 2010 alle 22:44

    @ Zeshan

    uso esplodere invece di dividere

  39. Zeshan
    16 Settembre 2010 alle 10:05

    Sconsigliata: la funzione split () è deprecato in E: \ wamp \ www \ floodpk2 \ admin \ simplecsvimport.php on line 63
    Il file non è scrivibile, controllare le autorizzazioni. Trovato un totale di 1498 record in questo file CSV.

    plz help me urgente

  40. Farmacia online
    11 settembre 2010 alle 09:22

    8pills.com è il vostro salute soluzione di arresto cura. 8pills.com fornire la migliore della classe di farmaci generici e di marca.

  41. Oram
    10 settembre 2010 alle 01:17

    Sono di fronte avviso di sotto-

    wamp \ \ www \ Nuova cartella (2) \ exl8.php sulla linea 20: Notice: Undefined offset: 1 in C

    wamp \ \ www \ Nuova cartella (2) \ exl8.php sulla linea 20: Notice: Undefined offset: 2 in C

    wamp \ \ www \ Nuova cartella (2) \ exl8.php sulla linea 20: Notice: Undefined offset: 2 in C

  42. Matt
    8 Settembre 2010 alle 23:18

    Questo funziona molto bene. Grazie!

  43. Roy
    20 agosto, 2010 alle 12:02

    Ecco il codice btw,

    Databasehost $ = "localhost";
    $ Databasename = "database";
    Databasetable $ = "tavola";
    Databaseusername $ = "admin";
    Databasepassword $ = "admin";
    Fieldseparator $ = "";
    Lineseparator $ = "\ n";
    Csvfile $ = "https://linktosite/";
    addauto $ = 0;
    $ Salvare = 0;
    Outputfile $ = "output.sql" / / se è salvare su (1)
    $ File = fopen ($ csvfile, "rb");
    $ Csvcontent = stream_get_contents ($ file);

    fclose ($ file);

    $ Con = @ mysql_connect ($ databasehost, $ databaseusername, $ databasepassword) or die (mysql_error ());
    @ Mysql_select_db ($ databasename) or die (mysql_error ());

    Linee $ = 0;
    $ query = "";
    $ Linearray = array ();
    foreach (split ($ lineseparator, csvcontent $) di $ riga) {

    Linee $ + +;

    $ Riga = trim ($ riga, "\ t");

    $ Riga = str_replace ("\ r ","",$ linea);

    /************************************
    Questa linea sfugge il carattere speciale. rimuoverlo se le voci sono già fuggiti nel file CSV
    ************************************/
    $ Riga = str_replace ("'"," \ '", $ line);
    /*************************************/

    $ Linearray = explode ($ fieldseparator, $ line);

    $ Linemysql = ("','",$ implode linearray);

    if ($ addauto)
    $ "Si inserisce in valori di query = $ databasetable (",'$');"; linemysql
    altro
    $ Query = "inserire i valori databasetable $ ('$ linemysql');";

    $ $ query .= query. "\ N";

    @ Mysql_query ($ query);
    }

    @ Mysql_close ($ con);

    if ($ salvare) {

    if (! is_writable ($ outputfile)) {
    echo "Il file non è scrivibile, verifica i permessi. \ n";
    }

    else {
    $ File2 = fopen ($ outputfile, "w");

    if (! $ file2) {
    echo "Errore nella scrittura del file di output. \ n";
    }
    else {
    fwrite ($ file2, $ query);
    fclose ($ file2);
    }
    }

    }

    echo "Trovati un totale di $ record righe in questo file CSV. aggiunto al DB \ n ".

  44. Roy
    20 agosto, 2010 alle 12:00

    Ciao,

    Io uso questo script per importare un file CSV datafeed a MySQL.
    L'unico problema che ho, è che le virgolette "" sono inserite anche nel mio tabelle
    Delimitatore:, (Komma)
    Allegato: "(aanhalingsteken)
    Nuova linea: \ r \ n

  45. Radikale
    18 agosto, 2010 alle 18:35

    Bel lavoro!

    Io faccio solo una domanda.

    E 'possibile utilizzare più caratteri per esplodere il commando nella sceneggiatura?
    Ho allso bisogno che ci sia una separazione con un. e;

    La ringrazio molto se qualche corpo ha qualche idea!

  46. Vinita
    17 Agosto 2010 a 06:49

    Io uso questo codice ... ... ... E 'troppo facile da implementare nel mio sito ... ..
    Grazie mille ..

    Voglio un po 'di più per il codice php ... ...
    Per convertire la pagina in pdf ...

  47. Haan
    7 Agosto, 2010 alle 05:11

    Ciao,
    Sempre questo errore. come risolvere questo?

    Errore:
    Il file non è scrivibile, controllare le autorizzazioni. Trovato un totale di 13 record in questo file CSV.

    Grazie
    Haan

  48. Darwin
    23 Luglio 2010 alle 01:23

    Hmm .. ho avuto errori come questo "Il file non è scrivibile, verifica i permessi. Trovato un totale di 2 record in questo file CSV. "Qualsiasi idea di che cosa è andato storto?

  49. Darwin
    23 Luglio 2010 alle 01:21

    Hmm .. ho avuto errori come questo "Il file non è scrivibile, verifica i permessi. Trovato un totale di 2 record in questo file CSV. "Qualsiasi idea di che cosa è andato storto?

  50. Polluce
    24 Giugno 2010 alle 10:28

    Per saltare la prima linea / riga che è un colpo di testa in file CSV fare questo:
    ... ..
    if ($ righe> 1) {

    if ($ addauto)
    $ "Si inserisce in valori di query = $ databasetable (",'$');"; linemysql
    altro
    $ Query = "inserire i valori databasetable $ ('$ linemysql');";

    $ $ query .= query. "\ N";
    @ Mysql_query ($ query);
    }

  51. newbie
    14 Giugno 2010 alle 21:41

    Ho avuto questo script in esecuzione bene sotto un dominio diverso. Poi, quando mi sono spostato, i download cron il file csv, negozi, e poi lo rimuove, ma doesnt caricare su mysql. Quando guardo il file import.php e cercare di eseguirlo ho l'errore che non riesce a trovare il file assicurarsi di avere il percorso corretto. Guida.

  52. gio
    5 giugno 2010 alle 14:55

    Se si vuole evitare di inserire la prima riga, basta giocare con il contatore, per esempio:

    linee = $ 1; (Il valore del contatore è 1)
    $ query = "";
    $ Linearray = array ();

    foreach (split ($ lineseparator, csvcontent $) di $ riga) {

    $ Righe + +; (assegna la prima linea # 2 (header)

    if ($ righe> = 3) {(a partire alla # 3 "qualcosa maggiore o uguale a 3")

  53. Coulton
    5 giugno 2010 a 09:55

    Bellissimo script ma ho dei problemi ricorrenti.
    Dopo aver eseguito lo script, si dice "Trovato un totale di 1 record in questo file CSV.".
    Ho guardato indietro nella mia tabella e si vede uno spazio vuoto.
    Ho controllato per assicurarsi che ci fosse il giusto numero di colonne e ci sono stati.
    Please help!

    Grazie,
    Coulton

  54. Saman
    3 Giugno 2010 alle 01:10

    Se io sono limitato ad accedere harddrive cliente come faccio a caricare il file CSV per l'esempio server.Per possiamo impostare il valore predefinito a controllo caricamento file

  55. alejandro
    11 Maggio 2010 alle 04:03

    Questo è stato molto utile per me ... ma ho bisogno di fare una modifica per la lettura di file di grandi dimensioni. Ero confuso all'inizio, ma poi si rese conto dei carichi script l'intero file in memoria (giusto?). Così qui è una versione personalizzata del codice, che recita le linee in uno alla volta. si legge in file che sembrano
    inizio del file:
    2,3, -1
    1, -2,4
    fine del file (con molti valori più). Io volevo ogni riga da una voce della tabella e un id con il numero di linea, così come il primo ID che rappresenta la dimensione della tabella (che non cambierà più tardi).

    <? Php

    /********************************/
    / * Codice a https://legend.ws/blog/tips-tricks/csv-php-mysql-import/
    / * Modificare le voci qui sotto per riflettere i valori appropriati
    /********************************/
    Databasehost $ = "localhost";
    $ Databasename = "tomoku";

    Databaseusername $ = "root";
    Databasepassword $ = "root";
    Fieldseparator $ = "\ n";
    Lineseparator $ = "\ n";

    / / Questo codice legge i file di tatami nel database

    $ Con = @ mysql_connect ($ databasehost, $ databaseusername, $ databasepassword) or die (mysql_error ());
    @ Mysql_select_db ($ databasename) or die (mysql_error ());

    / / Questo loop su un gruppo di file
    for ($ r = 2; R $ <14; $ r + +) {
    for ($ c = $ r, $ c

  56. Ap.Muthu
    28 Aprile 2010 alle 06:02

    Di seguito ha fatto il trucco per me:
    LOW_PRIORITY LOAD DATA LOCAL INFILE
    'C: \ \ Documents and Settings \ \ Administrator \ \ Desktop \ \ SigmaS1.csv'
    INTO TABLE `mydb` ». Mytable`
    CAMPI ESCAPED BY '\ \'
    DENUNCIATO DA ','
    FACOLTATIVAMENTE CHIUSA DA '"'
    Righe che terminano con '\ r \ n'
    (`User`, `pwd`, `SNO`, `amt`, `ActiveRec»);

  57. pace
    20 Apr, 2010 a 11:22

    Lo script è la lettura di un ulteriore linea dal file CSV. ad esempio se il file csv ha 25 record Esso mostra ci sono 26 record. Potete per favore dirmi dove sto andando male?

    Ho aggiunto per verificare se si tratta di una prima linea e continuare ciclo se la sua prima linea.

    grazie

  58. Carl
    18 aprile 2010 alle 11:00

    Come Gary, voglio essere in grado di sovrascrivere un record esistente, ma con l'aggiornamento non, cancellando tutti i dati nel db. Sp in giro da qualche parte qui:

    if ($ addauto)
    $ "Si inserisce in valori di query = $ databasetable (",'$');"; linemysql
    altro
    $ Query = "inserire i valori databasetable $ ('$ linemysql');";

    Come posso controllare per vedere se il record esiste e quindi aggiornare, piuttosto che inserire?

  59. pace
    13 Aprile 2010 alle 10:52

    Come faccio a saltare la prima linea / riga che è un colpo di testa in file CSV e inserire il resto dei dati in db?

  60. admin
    16 Marzo 2010 alle 12:30

    @ Gary
    si potrebbe utilizzare una @ mysql_query ("$ databasetable troncare"), a destra dopo l'istruzione @ mysql_select_db.
    Ma attenzione, questa azione cancellerà i dati e non è reversibile.

  61. admin
    16 Marzo 2010 alle 12:28

    @ Kish
    il codice attuale non consente la navigazione per / upload del file.
    Si può semplicemente inserire il file CSV nella stessa directory dello script php, e semplicemente impostare la variabile $ csvfile essere uguale al nome del file (senza path)

  62. Jeremie
    9 Marzo, 2010 alle 12:39

    Ciao a tutti,

    Come faccio a contenere questi csv cita la data "giorno mese, la data, 2010" e le "province, stato" stato a una colonna di mia base dati? Io vedo molti esempi, ma non riesco a farlo funzionare. Qualsiasi aiuto sarebbe buono.

    ak, 10037591,1, "Martedì 9 Mar 2010 15:55:16", 59,7,151 mila, -151.4434,2.7,75.90,32, "Penisola di Kenai, Alaska"
    THX

  63. data_type
    5 marzo 2010 a 12:03
  64. Gary
    2 marzo 2010 a 11:26

    Grazie, questo codice ha davvero aiutato!

    Come potrei modificarlo in modo da consentire un modulo per essere visualizzato in cui l'utente accede e seleziona il file CSV da importare nella tabella?

    E anche come potrei fare in modo che ogni volta che un nuovo file è presentato sarebbe contrario tutto ciò che è attualmente memorizzato nella tabella?

    Molte grazie

  65. Kish
    17 febbraio 2010 ore 14.31

    Questo codice è molto utile per me ..
    grazie.

    Come posso ottenere il sfogliare file invece di digitare il nome completo del percorso ..

    Si prega di aiutare in questo.

    grazie

  66. rajdeo
    4 febbraio 2010 a 07:21

    Non ho capito come funziona da un controllo file. significa in primo luogo cercare e scegliere un file e poi presentare in cui ho bisogno di modifiche

  67. Mark Camp
    11 gennaio 2010 alle 00:10

    Ciao,

    Apportato alcune modifiche. . Mio file txt ha 3 colonne separate da un "|" (pipe). Lo script visualizza i dati del file, conta le righe, ma non inserire i dati nel database. Eventuali commenti?

    $ Csvcontent = fread ($ file, $ size);

    fclose ($ file);

    $ Con = @ mysql_connect ($ dbhost, $ nomeutentedb, $ dbuserpassword) or die (mysql_error ());
    @ Mysql_select_db ($ datasource) or die (mysql_error ());

    Lineseparator $ = "\ n";
    Fieldseparator $ = "|";

    Linee $ = 0;
    $ query = "";
    $ Linearray = array ();

    $ count = 0;

    foreach (split ($ lineseparator, csvcontent $) di $ riga) {

    $ Count = $ count + 1;

    Linee $ + +;

    $ Riga = trim ($ riga, "\ t");

    $ Riga = str_replace ("\ r ","",$ linea);

    /************************************
    Questa linea sfugge il carattere speciale. rimuoverlo se le voci sono già fuggiti nel file CSV
    ************************************/
    $ Riga = str_replace ("'"," \ '", $ line);
    /*************************************/

    $ Linearray = explode ($ fieldseparator, $ line);

    $ Linemysql = (""",$ implode linearray);

    if ($ addauto)

    $ "Query = inserire nei valori INDICATORI ('$ count', '$ linemysql');";

    altro

    $ "Query = inserire nei valori INDICATORI ('$ linemysql');";

    $ $ query .= query. "\ N";

    @ Mysql_query ($ query) or die (mysql_error ());

    echo "$ linemysql \ n";
    }

  68. Mark Cloyd
    3 gennaio 2010 a 19:33

    Ottimo script! Avevo bisogno di un inizio poco salto per un progetto su cui stavo lavorando e questo ha fatto il trucco.

    Ho fatto qualcosa di strano notare però, ho modificato lo script di lavorare con un form e ho fatto notare che per la ricerca, l'ultimo campo è stato inculata a causa della nuova linea char (o \ r \ n o entrambi) era ancora in fase di registrazione nel database MySQL.

    A tal fine, se si sostituisce:
    $ Riga = str_replace ("\ r ","",$ linea);

    con:
    $ Riga = str_replace ('\ r',",$ linea);

    manterrà il ritorno da essere un problema, come per la nuova linea, ho aggiunto un po 'di qualcosa che permette l'inserimento di nuovi record, ma aggiorna i record esistenti, in modo da non finire con le voci duplicate. In cima il codice qui sotto, potrete vedere dove ho fatto la stessa soluzione per la linea di quello nuovo che char.

    $ Linemysql = ("','",$ implode linearray);

    $ Newlinemysql = str_replace ('\ linemysql',",$ n);

    if ($ addauto) {

    switch ($ databasetable) {

    caso ('indirizzo'):

    Duplicatevals $ = "indirizzo = VALUES (indirizzo),
    città = valori (città), stato = valori (stato),

    zip = valori (zip) ";

    break;

    caso ('proprietario'):

    Duplicatevals $ = "ownername = VALUES (ownername),
    housetype = VALUES (housetype),

    addresskey = VALUES (addresskey) ";

    break;

    }

    $ "Si inserisce in $ query = valori databasetable newlinemysql (",'$ ')

    IL DUPLICATO aggiornamento della chiave

    $ Duplicatevals ";

    Else {}

    $ Query di inserimento "= $ valori in databasetable ('$ linemysql')

    IL DUPLICATO aggiornamento della chiave

    $ Duplicatevals ";

    }

    Inoltre, nel mio modulo ho aggiunto il nome della tabella e se volevo che il tavolo sia [boolean] "addauto" non o come un unico ingresso da una discesa (separati da virgola), quindi dividere il risultato nella parte superiore del simplecsvimport script.

    Infine, si deve ricordare di impostare indici del database per l', "ON DUPLICATE ..." al lavoro, incrementi di auto non funziona in questo caso, quindi si deve impostare un indice secondario su tavoli incrementare l'auto, le tabelle che don 'incremento automatico T e hanno campi di lavoro unico con l'unico indice, se questa è la rotta che si vorrebbe andare.

    Spero che questo aiuta qualcuno!

    Cheers!

  69. phpwebdesigner2010
    8 dicembre 2009 alle 21:39

    Ho bisogno di scaricare automaticamente i dati da un server remoto. Il suo un file CSV, e ho bisogno di decomprimerlo, e memorizzare i dati in un database mysql che ho creato. Ci sono più database. La prima sezione è sotto uno dei database che qualcuno mi ha aiutato con e funziona meravigliosamente. Ho messo su un processo di cron e lo scarica automaticamente come previsto. Comunque ho più database e cant ottenere gli altri al lavoro.

    QUESTA SEZIONE DI SOTTO funziona bene!!
    --------------------------

    # / Bin / bash

    deleteparam = '-delete-after';
    # Deleteparam = "
    # Directory = '-directory-prefix = / $ HOME / myfolder / myfolder /'
    directory = "
    # Userpwd = '-http-user = blah-blah http-password ='

    ToUpper () {
    echo $ 1 | tr "[: lower:]" "[: upper:]"
    }

    # If [-z "$ 1"], quindi
    Echo # Utilizzo: $ 0 tavolo
    # Uscita
    # Fi

    CAP = nome del file di dati in un server remoto
    ZIP = `$ ToUpper ZIP»

    # Il file all'interno del zip ha uno di meno _
    DATI = nome della tabella nel mio database mysql
    DATA = `ToUpper $ DATA`

    # Rm $ TABLE.csv.zip
    # Rm $ DATA.csv

    cd / $ HOME / myfolder / myfolder /
    ####### Ottenere il residenziale

    'Wget https://3pv.mlslirealtor.com/Data3pv/DownloadBRSaction.asp?user_code=XXXXXX&password=XXXXXXX&data_type=datazip '-O $ ZIP.csv.zip
    sleep 10
    ####### Decomprimerlo
    pwd
    ls-la

    unzip-o $ ZIP.csv.zip
    sleep 10
    ####### Caricarlo

    wget-verbose deleteparam $ $ $ directory userpwd https://mywebsite/myfolder/import.php?table = $ DATA
    sonno 300

    ###### Eliminare i file

    rm $ ZIP.csv.zip
    rm $ DATA.csv
    sleep 10
    _ ---------------------------
    TUTTO QUESTO SOPRA opere meravigliose

    ECCO COSA HO BISOGNO DI AIUTO CON
    --------------------------
    1. Ho bisogno di uno script da aggiungere al file di cui sopra, che scarica le foto. Se vedete qui sotto ho bisogno di uno script che viene automaticamente la data e l'ora che lo script viene eseguito. Ci server contiene foto degli ultimi 7 giorni e viene costantemente aggiornato. Una volta che questo script è eseguito verrà scaricato i dati nella tabella che ho creato.

    2. Poi, ho bisogno di uno script che interroga il database mysql in cerca di voci che hanno foto e poi recuperare le foto reali direttamente dai loro server remoto. Questo file csv NON scaricare foto, solo i dati che posso utilizzare per eseguire uno script per recuperare le foto in un punto dato. Vedi sotto.
    Qui di seguito sono le istruzioni che ho ricevuto.

    ISTRUZIONI
    Foto di dati vengono recuperati da HTTP. I dati di foto che viene aggiornato una volta al giorno ed è disponibile per il download come file CSV. È quindi possibile scrivere uno script utilizzando i dati dal file CSV per puntare di nuovo alle immagini sul nostro server immagini. È necessario fornire un valore per la stringa di query last_updt> 'YYYYMMDD HH: MM: SS' per l'URL per restituire i dati. The last_updt campo è il valore di data per l'ultima volta che una foto è stata modificata la lista.

    Sarà necessario sostituire i titolari luogo user_code e password (XXXX) con le credenziali di accesso fornite a voi.

    Fase 1: Per recuperare il primario foto elenco di dati del file CSV andare alla URL sottostante.

    https://remotewebserver/Data3pv/DownloadBRSaction.asp?user_code=XXX&password=XXXX&query_str=last_updt% 20%> 20'YYYYMMDD 20HH%: MM: SS '& data_type = FOTO

    Fase 2: La tabella di dati dovrebbe scaricare le foto in un formato CSV.

    Fase 3: le bandiere Y e il numero di ML nei dati è possibile collegare di nuovo al nostro sedi immagine.

    Il nostro primario percorso della directory di immagini è il seguente:

    https://remoteserver/folder/folder/folder/Last3DigistsofML # / # annuncio. jpg

    Ad esempio-La foto principale per numero di iscrizione 1899430 si trova a

    https://remoteserver/folder/folder/1/430/1899430.jpg

    Il nostro ulteriore struttura di directory di immagini il percorso è il seguente:

    https://remoteserver/mlsphotos/full/PhotoPosition/Last3DigistsofML # / annuncio # _photoPosition.jpg

    Ad esempio-La seconda foto per il numero di iscrizione 1899430 si trova a

    https://remoteserver/folder/folder/2/430/1899430_2.jpg

  70. Nathan
    20 Ottobre 2009 alle 05:59

    Ciao, mi dice il numero di record, ma non mettendo i dati nel database

    Spero che vi può aiutare

    Nathan

  71. admin
    8 Ottobre, 2009 alle 16:48

    il comando è: tablename troncare.

    è possibile inserire la seguente riga 58:
    @ Mysql_query ("$ databasetable troncare");

    ma questo non è reversibile! quindi state attenti

  72. MAFF
    7 Ottobre 2009 alle 07:24

    Come faccio a svuotare la tabella già riempito prima di inserire il nuovo file?
    o posso aggiornare un ingresso già esistente?

    TRUNCATE, UPDATE? Come faccio ad avere questo nella query?

  73. admin
    5 ottobre 2009 alle 08:46

    @ Andy Brotherton : Questo significa che la query è di tentare di inserire un record con un numero di colonne che non corrispondono a quelle della tabella del database.

    1) Sei sicuro che il file CSV ha lo stesso numero di colonne della tabella nel database?
    2) è il separatore di campo in questo file CSV davvero una virgola? o è una scheda per esempio o altro? Se non è una virgola, modificare il valore di $ fieldseparator sulla linea 12
    3) La tabella deve essere già creato nel database prima di provare a caricare i dati in esso. Sei sicuro di averlo?

  74. Andy Brotherton
    4 Ottobre 2009 alle 14:14

    Ciao,

    Mi piacerebbe utilizzare questo script, ma non sono sicuro di quello che sto facendo male. Ho lo stesso problema di cui sopra non con il caricamento dei dati nel db. Essa trova il numero corretto di righe, ma non mostra nulla nel db.

    Ho cambiato linea 88 @ mysql_query ($ query) or die (mysql_error ());

    e ottenere questo messaggio "Il numero delle colonne non corrisponde al conteggio alla riga 1"

  75. admin
    3 ottobre 2009 alle 18:02

    @ Claus
    Ciao Claus.
    Il CSV davvero contenere un singolo record?

    Poiché lo script ha raggiunto lo stadio in cui essa stampa il numero di record, suppongo che non ha mancato quando connesso al database (linee 56-57) in modo che non è il problema.

    E 'possibile che la query per inserire i dati sta fallendo.
    Provate a sostituire la linea 88 con:
    mysql_query ($ query) or die (mysql_error ());

    e verificare quale errore si ottiene.

  76. admin
    3 ottobre 2009 alle 17:58

    @ Okoth
    Ciao Okoth.

    Molto probabilmente, è possibile eliminare le linee 33-54 e sostituirli con questa sola riga:

    $ Csvcontent = @ file_get_contents ("... https://");

    sostituire i punti con l'url del caso (url diretto al file CSV)

  77. admin
    3 ottobre 2009 alle 17.54

    @ Adrian
    Ciao Adriano.
    Drupal, come avrete notato, ha strutture di tabelle complesse. A seconda che tipo di dati da importare, è molto probabile che questi dati deve essere suddiviso in più tabelle, di solito con una chiave di politica estera come l'ID del nodo.
    Sfortunatamente, lo script di cui sopra non servirebbe farlo.

  78. Okoth
    18 settembre 2009 alle 20:16

    Grazie per lo script. Molto comprensibile.

    Come posso modificare questo script in modo che recupera e memorizza un file csv da Internet in MySQL?

  79. Adrian
    13 Settembre 2009 alle 19:03

    Ciao a tutti
    Sto usando Drupal per creare un nuovo sito web, la sfida sto avendo in questo momento è che ho bisogno di importare dati da un file CSV in un database MySQL, che ha tavoli comuni, quindi alcuni dei campi in cui ho bisogno di importare i dati csv sono in diverse sezioni dello stesso database sarà questo lavoro scritto per me? Se non è possibile questo file csv da importare con un altro metodo?

    Si prega di avvisare, vi ringrazio per qualsiasi tipo di assistenza.

    Saluti
    Adrian

  80. Claus
    11 settembre 2009 alle 12:59

    Ciao a tutti!

    Sembrano avere lo script di lavoro ... tranne che non scrivere dati sul mysql ...
    Come con Chris: Lo script è completata, e le uscite anche il numero di record, ma non toccare il database a tutti ... ma mi dice: trovato un totale di 1 record in questo file CSV.

    Che cosa ho fatto di sbagliato (im un noob in php e mysql)

    Grazie
    Claus

  81. admin
    26 Agosto 2009 alle 03:20

    Ciao Stanley, il problema è con le virgolette singole. Il software blog qui li riscrive. Basta sostituire 'e' con '

    PS: il comando precedente è quello di caricare direttamente un file csv nel database mysql dal prompt. Questo è bello, ma non collegato al precedente script :)

  82. Stanley Zdun
    24 Agosto 2009 a 18:19

    si dice a caricare questo nella base dati

    dati di carico 'percorso' infile locali in campi tabella TABELLA terminato da ',' righe che terminano con '\ n';

    Io modificare il percorso e la tabella di entrare nei suoi, ma mi dà un errore che la sua sintassi errata del codice 1064

    qualcuno può darmi qualche consiglio su cosa fare

    grazie
    stan

  83. Gary Pearman
    23 Febbraio 2009 alle 07:25

    Per quanto riguarda la questione virgolette, si può semplicemente utilizzare questo:

    $ Linearray = preg_split ("/,(?=(?:[^ \ "] * \" ^ [\ "] * \ ")*(?![^ \"] * \ line "))/", $ );

    Cheers,
    Gaz.

  84. admin
    18 dicembre 2008 alle 17:35

    Caro Chris,

    si prega di sostituire:
    @ Mysql_query ($ query);
    con:
    @ Mysql_query ($ query) or die (mysql_error ());

    e fatemi sapere quale errore ti dà

  85. Chris
    18 dicembre 2008 ore 14.31

    Ciao a tutti,

    Amore questo script, e che stava lavorando bene, ora improvvisamente lo script solito inserire i record. La sceneggiatura completa, e le uscite anche il numero di record, ma non toccare il database a tutti ...

    Tutte le idee?

    Grazie
    C

  86. admin
    1 dicembre 2008 alle 14:10

    Ciao Marco,

    primo, si riferisce al file selezionato nella variabile $ outputfile.
    in secondo luogo, questo file deve essere scrivibile. Suppongo che tu stai usando Linux, non Windows, in quanto questo non è generalmente un problema con le finestre.
    Su Linux, semplicemente SSH alla macchina, cambiare la directory in cui il file di output è, e digitare: chmod 777 nomefile
    dove 'filename' è il nome del file effettivo.
    Se non si dispone di SSH, FTP molti supportare i clienti cambiare il permesso. A tal fine, FTP per la cartella contenente il file di output, quindi selezionare il file, e individuare da questo software ftp la possibilità di cambiare il permesso. Impostare a 777, o 'leggere, scrivere, eseguire' per tutti.

  87. MarkFromHawaii
    19 novembre 2008 alle 04:00

    Ciao a tutti,

    Grazie per lo script. Sono un noob in PHP e MySQL in modo apprezzo davvero qualcosa di simile. Ho ottenuto per quanto riguarda la generazione del file non è scrivibile, controlla i permessi "messaggio di errore nel mio browser. Qualcuno può spiegare il commento su come impostare il permesso a 777? Sto utilizzando una e-Excel generato. Csv? Grazie in anticipo.

  88. gene
    29 Ott, 2008 a 09:28

    Sono in grado di ottenere solo la prima riga del mio file CSV da importare nel database.
    Ecco una copia del file di registro:

    inserire i valori di produzione (", '2008-10-21 ', '50', '50 ', '50', 'questa è la prima linea di note', 'Questa è la riga note 2', 'Questa è la riga le note 3 ', '0000-00-00', '0000-00-00 ', '0000-00-00', '456 Ave Morningside Ste ','. 512 ',' Brooklyn ',' New York ', '10023', 'Joe', 'Cliente 1');
    inserire i valori di produzione (", '2008-10-09 ', '50', '50 ', '50', 'questa è la prima riga note',",",' 2008/10/09', '2008 . -10-14 ', '0000-00-00', '456 Ave Morningside Ste ',' 512 ',' Brooklyn ',' New York ', '10023', 'Joe', 'Cliente 1');
    inserire i valori di produzione (", '2008-10-14 ', '25', '25 ', '25', 'NOTE 1',",",' 2008/10/14', '2008-10-17 ',' NULL ', '555 da qualche parte', 'Suite 123', 'y nuovo' 'New York', '10001 ',' Joe ',' Nome 1 ');
    inserire i valori di produzione (", '2008-10-16 ', '45', '45 ', '45',",",",' 2008/10/16', '2008-10-24 ',' NULL',",",",",",'',"); Tom
    inserire i valori di produzione (", '2008-10-01 ', '34', '34 ', '34',",",",' 2008/10/02', '2008-10-04 ',' 2008/10/04',",",",",",' Steve',");
    inserire i valori di produzione (", '2008-10-17 ', '50', '50 ', '50', 'questa è la prima riga note',",",' 2008/10/03', '0000 . -00-00 ', '0000-00-00', '456 Ave Morningside Ste ',' 512 ',' Brooklyn ',' New York ', '10023', 'Joe', 'Cliente 1');
    inserire i valori di produzione (", '2008-10-18 ', '25', '25 ', '25', 'NOTE 1',",",' 2008/10/04', '0000-00-00 ', '0000-00-00', '555 da qualche parte ',' Suite 123 ',' y New New York ',' ', '10001', 'Joe', 'Nome 1');
    inserire i valori di produzione (", '2008-10-19 ', '45', '45 ', '45',",",",' 2008/10/05', '0000-00-00 ',' 0000-00-00',",",",",",'',"); Tom
    inserire i valori di produzione (", '2008-10-20 ', '34', '34 ', '34', 'nuove note',",",' 2008/10/06', '0000-00-00 ', '0000-00-00',");',",",",",",' Steve
    inserire i valori di produzione (", '2008-10-21 ', '12', 'note ancor più recente',",",' 2008/10/07' '12 ', '12', '0000-00- 00 ', '0000-00-00',"); marchio',",",",",",'
    inserire i valori di produzione (", '2008-10-22 ', '1', '0 ', '0',",",",' 2008/10/08', '0000-00-00 ',' 0000-00-00',",",",",",",");
    inserire i valori di produzione (", '2008-10-23 ', '2', '0 ', '0',",",",' 2008/10/09', '0000-00-00 ',' 0000-00-00',",",",",",",");
    inserire i valori di produzione (", '2008-10-24 ', '3', '0 ', '0',",",",' 2008/10/10', '0000-00-00 ',' 0000-00-00',",",",",",",");
    inserire i valori di produzione (", '2008-10-15 ', '0', '0 ', '0', 'più tardi',",",' 2008/10/11', '0000-00-00 ' , '0000-00-00',",",",",",",");
    inserire i valori di produzione (", '2008-10-16 ', '0', '0 ', '0', 'più tardi ancora',",",' 2008/10/12', '0000-00-00 ', '0000-00-00',",",",",",",");
    inserire i valori di produzione (", '2008-10-17 ', '0', '0 ', '0', 'più tardi ancora',",",' 2008/10/13', '0000-00-00 ', '0000-00-00',",",",",",");
    inserire i valori di produzione (", '2008-10-18 ', '0', '0 ', '0', 'più tardi ancora',",",' 2008/10/14', '0000-00-00 ', '0000-00-00',",",",",",");
    inserire i valori di produzione (", '2008-10-19 ', '0', '0 ', '0', 'ultimo',",",' 0000-00-00', '0000-00-00 ' , '0000-00-00',",",",",",");
    inserire i valori di produzione (", '2008-10-01 ', '34', '34 ', '34', '',",",' più recenti 2008/10/02', '2008-10-04 ', '2008-10-04 bruce',",",",",",'');
    inserire i valori di produzione (",");

    Si dice che l'inserimento di 20 record, ma solo il primo fa nel database. Qualche idea?

  89. enim
    23 ottobre 2008 alle 04:16

    esso non è stato inserito nella tabella di database in cui voglio inserire ..: (

  90. Login
    20 ottobre 2008 alle ore 18:10

    opera principale di Nizza ;-)

  91. Fidel Bizzarri
    10 Ottobre, 2008 alle 05:12

    Ciao a tutti,

    Ho fatto una piccola modifica al codice, quindi funziona come un importatore CSV, come dovrebbe.

    CSV-s prima riga deve contenere i nomi di colonna che si desidera importare, in modo da modificare il ciclo foreach:
    foreach (split ($ lineseparator, csvcontent $) di $ riga) {

    Linee $ + +;

    $ Riga = trim ($ riga, "\ t");

    $ Riga = str_replace ("\ r ","",$ linea);

    / * Ottenere i nomi delle colonne prima riga del CSV * /
    if ($ righe == 1) {
    colonne di $ = explode ($ fieldseparator, $ line);

    $ Columnsql colonne (",",$ = implode);

    echo $ columnsql;
    continuare;
    }

    /************************************
    Questa linea sfugge il carattere speciale. rimuoverlo se le voci sono già fuggiti nel file CSV
    ************************************/
    $ Riga = str_replace ("'"," \ '", $ line);
    /*************************************/

    $ Linearray = explode ($ fieldseparator, $ line);

    $ Linemysql = ("','",$ implode linearray);

    if ($ addauto)
    $ "Si inserisce in $ query = databasetable ($ columnsql) values ​​('$ linemysql');";
    altro
    $ "Si inserisce in $ query = databasetable ($ columnsql) values ​​('$ linemysql');";

    $ $ query .= query. "\ N";

    @ Mysql_query ($ query);
    }

  92. admin
    6 ottobre 2008 alle 00:27

    Quanto è grande il file che si sta cercando di importare?
    in ogni caso, provate ad aggiungere la seguente riga dopo il tag di apertura iniziale:
    set_time_limit (300);
    Questo darà la sceneggiatura fino a 5 minuti (300 secondi) del tempo di esecuzione.
    Sostituzione di 300 con 0 gli permetterà di prendere tutto il tempo necessario.

  93. Phillip
    1 Ottobre 2008 alle 22:26

    Ciao a tutti, grazie simpatico script. Quando è in esecuzione ottengo:
    Fatal error: tempo di esecuzione massimo di 30 secondi superato in on line 63

    C'è qualcosa che posso fare per aggirare il problema?

  94. Roelof
    30 settembre 2008 alle 08:06

    Robbie, grazie per voi, inoltre, è ben accetto. Purtroppo, non funziona da subito quando l'ho copia. Penso che manca qualcosa perché il codice si sviluppa su due pali.

    Può controllare il codice come mostrato qui? Manca qualcosa?

  95. ASCASC
    27 Settembre, 2008 alle 05:04

    Brad, se tu l'avessi scaricato in precedenza rispetto la scorsa settimana, sostituire la '<?' in alto con '<? php' (togliere spazio)

  96. Brad
    26 Settembre 2008 a 14:43

    ottengo il primo nella misura in cui tagliare e il resto solo codice nel browser. So che PHP sta lavorando perché il resto del sito funziona.
    Ho fatto l'aggiornamento a PHP5 che importa?

  97. Robbie
    24 Settembre, 2008 alle 14:27

    )
    / / Salta perché rientra in elementi di matrice cattivo
    altro
    newArray $ [$ y] = str_replace linearray ('"',",$ [$ y]);
    $ Linearray = array_values ​​($ newArray); / / reset le chiavi del nuovo array
    $ X + +;
    }
    }
    }

  98. Robbie
    24 Settembre, 2008 alle 14:27

    Bene, ecco la correzione al mio precedente commento:

    inserire questo tra:

    $ Linearray = explode ($ fieldseparator, $ line);

    ... Frammento di inserire il codice riportato di seguito ....

    $ Linemysql = ("','",$ implode linearray);

    Trova e mantiene tutti "Stuff, More Stuff" insieme prima di implodere essa.

    $ A = "";
    $ B = "";
    qoutecount $ = 0;
    for ($ x = 0; $ x -1) {
    $ Qoutecount + +;
    if ($ qoutecount == 1)
    $ A = $ x; / / store prima istanza
    elseif ($ qoutecount == 2) {
    quotecount $ = 0;
    $ B = $ x; / / negozio di seconda istanza
    / / Che lo fa ... compilare tutti gli elementi da $ a $ b in $ a nulla e ignorare elementi dopo $ a $ b nel nuovo array;
    Newa $ = ""; / / inizializzare nuova stringa.
    for ($ z = $ a, $ z $ a & & $ y

  99. Robbie
    24 Settembre, 2008 a 12:19

    Non tiene conto per i campi come questa riga:
    Fname, Lname, "Company, Inc", Città, Provincia, CAP

    Company Inc e ottenere suddivisa in due colonne diverse.

  100. Steve
    12 Settembre 2008 a 12:19

    Rengaraj,
    il file CSV deve essere nella stessa posizione del file PHP.
    Inoltre, non hanno davvero a utilizzare lo stesso nome del file CSV.
    bbqrest.csv è un esempio, sostituisci questo nome di file con il vostro.

  101. Rengaraj
    12 Settembre 2008 alle 12:16

    Può uno veloce risposta ho un file csv bbqrest.csv al percorso corretto (root) ..

  102. Rengaraj
    12 Settembre 2008 alle 12:11

    Io sono sempre questo errore File non trovato. Assicurarsi che si è specificato il percorso corretto.

  103. ollyd
    9 Settembre 2008 alle 06:35

    sarebbe una buona idea aggiungere evitare le intestazioni all'interno del CSV di essere presentate nel database. Oppure, per creare uno script che tira fuori la prima fila e crea un db utilizzando questi valori come i nomi delle colonne.

  104. Giuseppe
    3 Settembre, 2008 alle 12:39

    Steve,

    Si sarebbe posto questo script in una cartella web accessibile, dopo aver cambiato le variabili che devono essere cambiati. Leggere i commenti nello script per scoprire cosa è necessario specificare. Quindi, chiamare lo script in un browser web, come:

    https://www.example.com/path-to-script/simplescvimport.php

  105. steve
    31 Agosto 2008 alle 19:04

    Total newbie - strappando i miei capelli tentando di importare csv di Excel in phpMyAdmin (per Mac). Mi piacerebbe sapere esattamente dove e cosa devo fare con questo script php ...?

  106. dani
    25 agosto 2008 alle 20.06

    Wow è cool ... aveva idea dopo aver letto il tuo codice ... ringrazio molto

  107. »CSV import
    7 Giugno, 2008 a 10:29
  108. Importare un file delimitato da virgola in MySQL con un script PHP | eCommerce & SEO
    30 Novembre 2007 alle 11:59
  109. hfvd
    24 ottobre 2007 alle 12:44

    Hi there, una piccola modifica per i valori di incremento automatico nella colonna 1 (campo id)

    vedi contare variabile $.

    ola, Enrico.

    / / $ Con = @ mysql_connect ($ databasehost, $ databaseusername, $ databasepassword) or die (mysql_error ());
    / / @ Mysql_select_db ($ databasename) or die (mysql_error ());

    Linee $ = 0;
    $ query = "";
    $ Linearray = array ();

    $ count = 0;

    foreach (split ($ lineseparator, csvcontent $) di $ riga) {

    $ Count = $ count + 1;

    Linee $ + +;

    $ Riga = trim ($ riga, "\ t");

    $ Riga = str_replace ("'"," \ '", $ line);

    $ Linearray = explode ($ fieldseparator, $ line);

    $ Linemysql = ("','",$ implode linearray);

    $ Query = "INSERT INTO` tabella db `VALUES ('$ count', '$ linemysql');";

    $ $ query .= query. "\ N";

    @ Mysql_query ($ query);
    }

    / / @ Mysql_close ($ con);

  110. »Csv Conversione in SQL con PHP @ Il Pad Coding: Programmazione blog, discussioni, tutorial, risorse
    24 settembre 2007 alle 14:12
  111. Len Lulow
    28 Febbraio 2007 alle 20:11

    Grazie mille questa salvato un sacco di tempo! script di Nizza.

  112. S. Martinez
    22 Febbraio 2007 alle 12:17

    Io di solito uso phpmyadmin, ma vero, in un caso non ha ancora installato, e non ha accesso alla shell (come la maggior parte dei provider di hosting condiviso), questo può venire molto utile.

  113. Jake
    25 febbraio 2007 a 06:31

    Molto utile, grazie.