PHP script om csv gegevens te importeren in mysql

Dit is een simpel script dat u zal toestaan ​​om csv data te importeren in uw database. Dit komt handig, want je kunt gewoon bewerken van de juiste velden, upload het samen met het CSV-bestand en noem het op het web en het zal de rest doen.

Hiermee kunt u het scheidingsteken opgeven in dit CSV-bestand, of het nu een coma, een tab etc. Ook kunt u koos voor de lijn separator, kunt u de output op te slaan in een bestand (bekend als een data sql dump).

Het laat u ook een leeg veld onder aan het begin van elke rij, die meestal is een auto-increment integer primaire sleutel.

Dit script is vooral nuttig als u geen phpmyadmin, of u niet wilt dat het gedoe van in te loggen en de voorkeur aan een paar klikken oplossing, of u gewoon een opdrachtprompt kerel.
Maar zorg ervoor dat de tafel is al gemaakt voordat je probeert om de gegevens te dumpen.
Gelieve uw commentaar posten als u nog geen bug report.

Download hier file

129 Reacties op "PHP-script om csv gegevens te importeren in mysql"

  1. Hi,

    ik gebruik dit script en werkt prima voor mij. maar alleen inserts 237 records in mysql tabel, terwijl in csv-bestand zijn er in totaal 437 records.

  2. Ik zal zeker gebruik deze. Ik ben gewoon benieuwd hoe om te beschermen of uit te voeren, zodat een buitenstaander niet zal gebruiken tegen mij. Ik ben debatteren om dit script of een perl script dat ik kan lopen vanaf de command line te gebruiken. Bedankt.

  3. Bestand is niet beschrijfbaar, controleer permissies. Vonden in totaal 1 records in dit csv-bestand.
    Please help me om dit probleem op te lossen. Ik heb niet te maken die output.sql bestand

  4. Bedankt!

    Het werkt als een charme!

    Zeer nuttig om een ​​gebruiker allaw om een ​​tafel te vullen zonder dat werkelijke toegang tot het.

    Nogmaals bedankt :)

  5. Code om csv-bestand importeren naar mysq met behulp van PHP: -
    Ten eerste maken alle Acess vellen in om uit te blinken en de Excel sheet opslaan als csv-bestand

  6. Dit is slechts de informatie die ik zocht! Ik zal gebruik maken van dit script om csv gegevens te importeren in mysql.

  7. Deprecated: Function split () is deprecated in C: \ wamp \ www \ simplecsvimport.php on line 66

    Please help op te lossen.

  8. Ik wil dat mijn CSV-bestand te krijgen gecontroleerd met de database.

    In de database is er een rij als dat-
    het testen van 23 INDIA

    Mijn CSV-bestand is als dat-
    abc 21 INDIA
    def 32 IN
    het testen van 23 INDIA
    def 21 INDIA

    Toen ik het CSV-bestand uploaden dient te controleren of de naam "test" al in de database staan ​​en moet die rij te verlaten en het uploaden van de overige drie rijen.

    Is het mogelijk om te doen.

    Gelieve te helpen.

    Bedankt.

  9. Handig script. Het kan zijn dat u de oprichting van de tabel en (grote csv's met veel kolommen) nodig hebben. Daarom is een aangepaste versie slidly dat de tabel met behulp van de headers van de eerste regel in het CSV-bestand kan maken.

  10. Hallo, Dit script is geweldig. Ik heb een probleem hoor. Is er toch het verwijderen van de 'merken die het script is het aangaan van mijn database. Ze zijn rond elke cel invoer.

  11. Pingback: Werken en het ontleden van CSV-tekstbestanden & PHP

  12. Hi ...
    Ik ben een probleem, als ik dit gebruik, zijn met een fout te zeggen
    "Deprecated: Function split () is deprecated in C: \ wamp \ www \ test1 \ simplecsvimport.php on line 64
    Bestand is niet beschrijfbaar, controleer permissies. Vond een totaal van 41 records in dit csv-bestand. "

    Pls antwoord, wat is er mis!
    dank bij voorbaat!

  13. Ik ben echt in de war met deze code!
    maar ik gewoon te proberen up!
    BTW, hoe de code of het veld html om deze code noemen

  14. Bedankt, zeer goede csv importeur.
    Maar ik heb een klein probleem gevonden, het werkt alleen met csv-bestand met de structuur: "veld1", "veld2", "veld3", enz. maar ik Hava een CSV-bestand als volgt: veld1, veld2, filed3, enz.

    Het enige wat ik kan veranderen is $ fieldseparator maar hoe kan ik 'vertellen' het script dat het bestand niet gebruiken "(veld scheidingsteken)?
    Mijn IDEE was een combobox met $ fieldseparator (of ;) en nog een met $ fielddelimiter ("of niets)

    Dank bij voorbaat.

  15. Enig idee van hoe je dit script aan de slag voor velden die zijn ingesloten met dubbele aanhalingstekens, zodat velden met komma's in hen krijgen niet gelezen worden als een nieuw item?

    Ik heb gegevens die komma's, zoals dollar bedragen en een commentaar sectie waar gebruikers zouden gebruik hebben gemaakt van een komma bevat. Ik heb het hele veld geïmporteerd en dit script behandelt hen als nieuwe velden.

  16. @ Joofoo
    Ik heb geladen uw code, maar ik krijg geen bijgewerkte informatie over MySQL database ...

    CSV bevat:
    Header -> gebruikersnaam, wachtwoord, bericht, e-mail, beeld, datum
    Rij2 -> Bill, dude,,,,
    Row3 -> Jane, Gal,,,,
    Row4 -> David, kind,,,,

    En hier is de code ...:
    <? Php

    / / Set-up van iphonelogin.php file in "remote" map ...
    / * Verbinding maken met de db * /
    / / $ Link = mysql_connect ('ronbo.db.6405862.hostedresource.com', 'ronbo', 'Pepper0689 ") or die (' Kan geen verbinding maken met het DB ');
    / / Mysql_select_db ("ronbo ', $ link) or die (" Kan niet selecteren van de DB');

    / / https://www.ihappyapps.com/DataFolder/loader.php
    /********************************/
    / * Code op https://legend.ws/blog/tips-tricks/csv-php-mysql-import/
    / * Onder Bewerk de inzendingen voor de juiste waarden weerspiegelen
    /********************************/
    $ Databasehost = "dbhost";
    $ Databasenaam = "naam";
    $ Databasetable = "tafel";
    $ Eigen database = "username";
    $ Databasepassword = "wachtwoord";
    $ Fieldseparator = "";
    $ Lineseparator = "\ n";
    $ Csvfile = "spreadsheet.csv";
    /********************************/
    $ Addauto = 1;
    /********************************/
    $ Besparen = 0;
    $ Uitvoerbestand = "output.sql";
    /********************************/

    if (! file_exists ($ csvfile)) {
    echo "Server heeft uw verzoek, maar het CSV-bestand dat u wilt laden in de database is niet aanwezig is ... .. \ n";
    exit;
    }

    $ Chunksize = 1 * (1024 * 1024);
    $ File = fopen ($ csvfile, "rb");
    if ($ file) {
    echo "Fout bij openen bestand \ n.";
    exit;
    }

    $ Size = filesize ($ csvfile);

    if ($ size) {
    echo "Bestand is leeg \ n.";
    exit;
    }

    $ Con = @ mysql_connect ($ databasehost, $ database invoeren, $ databasepassword) or die (mysql_error ());
    @ Mysql_select_db ($ databasenaam) or die (mysql_error ());

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

    $ Lijnen + +;
    if ($ lines <2) voort te zetten;

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

    $ Lijn = str_replace ("\ r ","",$ lijn);


    Deze lijn ontsnapt het speciale teken. verwijderen wanneer er items zijn al ontsnapt in het CSV-bestand

    $ Lijn = str_replace ("'"," \ '", $ regel);

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

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

    $ Query = "INSERT INTO $ databasetable waarden ('$ linemysql');";

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

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

    $ Lijnen -= 3;

    @ Mysql_close ($ con);

    <>

    Ik kon wel wat hulp gebruiken bij het verkrijgen van dit te laten werken ...
    Ron

  17. @ Roy
    Ik heb het script aangepast, zodat het veel minder geheugen verbruikt bij het verwerken van grote bestanden (het raakte php geheugen te beperken toen ik probeerde het te gebruiken op een 100 MB CSV-bestand). De veranderingen zijn als volgt:


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

    $ Size = filesize ($ csvfile);

    if ($ size) {
    echo "Bestand is leeg \ n.";
    exit;
    }

    $ Con = @ mysql_connect ($ databasehost, $ database invoeren, $ databasepassword) or die (mysql_error ());
    @ Mysql_select_db ($ databasenaam) or die (mysql_error ());

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

    $ Lijnen + +;
    if ($ lines <2) voort te zetten;

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

    $ Lijn = str_replace ("\ r ","",$ lijn);


    Deze lijn ontsnapt het speciale teken. verwijderen wanneer er items zijn al ontsnapt in het CSV-bestand

    $ Lijn = str_replace ("'"," \ '", $ regel);

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

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

    $ Query = "INSERT INTO $ databasetable waarden ('$ linemysql');";

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

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

    $ Lijnen -= 3;

    @ Mysql_close ($ con);

    Dank je wel,

  18. Ik probeerde het script, maar het is output.sql schriftelijke instructies rare dingen,
    invoegen in test_excel waarden ('PK |?????? Q k5 q Q k5 q Q k5 q ...??.

    als deze dingen
    Hoe kan ik dit probleem oplossen. een speciale indeling voor het Excel-blad?

  19. Hi guys, maar wilde jullie laten weten dat ik iemand gevonden om te schrijven mij het eigenlijke programma ik nodig heb.

  20. @ Warren

    /********************************/
    Dit bestand bevat een groot aantal pogingen tot wijzigen gemaakt door Warren (geen programmeur) op 28 dec vanaf 2010 gebaseerd op het commentaar bij de bron locatie en andere info om dit programma te maken in degene die hij nodig heeft. Dit is zeer onvolledig. Hulp is meest gewaardeerde en zeer hard nodig.

    Regels toegevoegd om input boxes te maken voor website URL database naam en wachtwoord, etc.
    /********************************/

    Welkom op de Server Upload Utility

    Dit programma loopt van uw PC naar twee lege tafels in een nieuwe MySQL database op uw website te vullen met: het uploaden van elke bestandsnaam minder de extensie, met een uniek nummer voor als een teller, aan tafel keywords_categories, en dan vervolgens wijst het nummer 1 in de lege kolom in de voorkant van de eerste colum van gegevens van dat bestand, en verhoogt het nummer een voor iedere volgende bestand verwerkt van die directory, zodat het aantal assigend naar de categorie naam in de tafel van de trefwoorden die behoren tot het die overeenkomt met vervolgens geüpload naar tabel trefwoord.

    Dit wordt gedaan voor alle csv-bestanden in een opgegeven map op uw het.

    Het negeert de eerste vijf regels in uw CSV-bestand.

    Website URL:
    Database Name:
    Database Gebruikersnaam:
    Database Password:
    Pad van Directory met bestanden om te uploaden:

    /********************************/
    Vraag
    Hoe krijg ik bovenstaande gegevens van invoervelden in het programma aan te passen die hieronder aangevraagd?
    /********************************/

    <? Php
    /********************************/
    Regel toegevoegd aan time-out te voorkomen op grotere bestanden.
    /********************************/

    set_time_limit (0);

    /********************************/
    Haal bestandsnamen van de bestanden te verwerken, en verwijder vervolgens bestandsextensie gebruiken ze om te uploaden als categorie namen aan tafel keywords_categories.
    /********************************/

    /********************************/
    Verwijdert bestandsnaam extenties
    gekopieerd van www perlmonks org /? node_id = 151232
    /********************************/

    sub parse_out_extension {
    die ("Geen bestandsnaam voor \ n ontleden.") if (@ _!);

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

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

    my $ end = pop (@ stuks);
    $ File = ~ s / \ $ end / /.;

    return ($ file) als $ file;

    /********************************/
    / * Originele code op https://legend.ws/blog/tips-tricks/csv-php-mysql-import/
    / * Onder Bewerk de inzendingen voor de juiste waarden weerspiegelen
    /********************************/
    $ Databasehost = "localhost";
    $ Databasenaam = "test";
    $ Databasetable = "sample";
    $ Eigen database = "test";
    $ Databasepassword = "";
    $ Fieldseparator = "";
    $ Lineseparator = "\ n";
    $ Csvfile = "bestandsnaam.csv";
    /********************************/
    / * Wilt u een ampty veld toe te voegen aan het begin van deze records?
    / * Nota van Warren in het geval van de trefwoorden die de eerste kolom van de gegevens in elk bestand, op een bestand voor bestand basis van deze nieuwe lege coum plaats din Frot van de trefwoorden moet worden veranderd, zodat het vangt het nummer toegewezen aan de categorie naam die is samengesteld uit de bestandsnaam minder de extensie en plaatst het in deze nieuwe lege eerste kolom.
    / * Dit is handig als u een tabel met het eerste veld wordt een auto_increment integer. Noot van Warren. Dit is wat er nodig in het geval van de bestandsnamen minder exteniosn die ge-upload zijn aan tafel keywords_categories.
    / * En het CSV-bestand is niet, zoals lege veld hebben voor de records.
    / * Set 1 voor ja en 0 voor nee. LET OP: niet ingesteld op 1 als u niet zeker bent.
    / * Dit kan dump gegevens in de verkeerde velden als dit extra veld bestaat niet in de tabel. Nota van Warren waarschijnlijk niet nodig dit bestand ik mijn geval, maar slechts een gok van mijn kant, maar moet wel nodig als een te zien.
    /********************************/
    $ Addauto = 1;
    /********************************/
    / * Wilt u de mysql query's op te slaan in een bestand? Zo ja set $ op te slaan in een.
    / * Permission op het bestand moet worden ingesteld op 777. Ofwel Upload een voorbeeld bestand via ftp en
    / * De machtigingen, of uit te voeren op de prompt: touch output.sql & & chmod 777 output.sql
    /********************************/
    $ Besparen = 0;
    $ Uitvoerbestand = "output.sql";
    /********************************/

    if (! file_exists ($ csvfile)) {
    echo "Bestand niet gevonden. Zorg ervoor dat u hebt opgegeven het juiste pad \ n ".;
    exit;
    }

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

    if ($ file) {
    echo "Fout bij openen bestand \ n.";
    exit;
    }

    $ Size = filesize ($ csvfile);

    if ($ size) {
    echo "Bestand is leeg \ n.";
    exit;
    }

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

    fclose ($ file);

    $ Con = @ mysql_connect ($ databasehost, $ database invoeren, $ databasepassword) or die (mysql_error ());
    @ Mysql_select_db ($ databasenaam) or die (mysql_error ());

    /********************************/
    Om te voorkomen dat het plaatsen van de eerste vier rijen van adveristing koptekst in en een lege regel. De lijn die gelijk is aan nul code werd vervangen door onderstaande code.
    /********************************/

    $ Lijnen = 1; (De waarde van de teller is 1)
    $ Query = "";
    $ Linearray = array ();

    foreach (split ($ lineseparator, $ csvcontent) als $ lijn) {

    $ Lijnen + +; (Wijst de eerste regel # 2 (header)

    if ($ lines> = 5) {(Start op # 5 "iets hoger of gelijk aan 5?)

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

    foreach (split ($ lineseparator, $ csvcontent) als $ lijn) {

    $ Lijnen + +;

    $ Lijn = trim ($ line, "\ t");

    $ Lijn = str_replace ("\ r ","",$ lijn);

    /************************************
    Deze lijn ontsnapt het speciale teken. verwijderen wanneer er items zijn al ontsnapt in het CSV-bestand
    ************************************/
    $ Lijn = str_replace ("'"," \ '", $ regel);
    /*************************************/

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

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

    if ($ addauto)
    $ Query = "INSERT INTO $ databasetable waarden (",'$ linemysql');";
    anders
    $ Query = "INSERT INTO $ databasetable waarden ('$ linemysql');";

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

    /************************************
    Dit stukje code hieronder werd toegevoegd aan nu laten zien foutmeldingen.
    ************************************/

    $ Result = mysql_query ($ query);

    / / Check resultaat
    / / Dit toont de werkelijke vraag naar MySQL, en de fout. Nuttig voor het debuggen.
    if (! $ result) {
    $ Bericht "Ongeldige zoekopdracht: '=. mysql_error (). "\ N";
    'Whole query:' $ bericht .=. $ Query;
    sterven ($ bericht)
    }

    @ Mysql_close ($ con);

    if ($ opslaan) {

    if (! is_writable ($ uitvoerbestand)) {
    echo "Bestand is niet beschrijfbaar, controleer de rechten \ n.";
    }

    else {
    $ Bestand2 = fopen ($ uitvoerbestand, "w");

    if (! $ bestand2) {
    echo "Fout bij schrijven naar de output file \ n.";
    }
    else {
    fwrite ($ bestand2, $ query);
    fclose ($ bestand2);
    }
    }

    }

    echo "Found een totaal van $ lijnen records in deze csv-bestand \ n.";

    ?>

  21. Gewoon een kleine correctie op mijn verzoek, zijn de twee tabellen in de MqSQL databank die ik noemde eigenlijk genoemd:

    keywords_categories

    trefwoorden

  22. @ Warren

    Ook zou gewoon uit nieuwsgierigheid ook proces een txt-bestand (dat net heeft een lijst met woorden erin) op dezelfde manier?

    (Ik ben nieuw op dit, en weet dat ik misschien een veel te vragen, dus als iemand kon dit kleine project nemen voor mij, als het passend is, misschien kunnen we over mijn betaling van een klein bedrag voor hun tijd in het maken van de wijzigingen aan aan mijn behoeften? Laat het me weten.)

    Mijn e-mail is: wr.spence @ hotmail.com

  23. Ik ben geen programmeur. Ik zie uw script en het kan dicht bij wat ik nodig heb, of kan misschien vormen de basis van wat ik nodig heb, weet ik niet zeker.

    Ik moet om dezelfde upload functie over en weer, maar vanuit een andere sub-directory elke keer van mijn harde schijf, voor een lijst van csv-bestanden, en naar een andere MySQL DB telkens (op een differret website elke keer) uit te voeren. In de meeste gevallen het db heeft geen gegevens in, maar het zou ideaal zijn (maar niet noodzakelijk) als het script kan nog steeds werken met een db die wel gegevens hebben, zonder dat de bestaande gegevens).

    Ik heb het nodig om in te loggen op de db op de server (het moet me vragen om de URL van de site en db gebruikersnamen en wachtwoord, etc).

    Ik moet iets waarmee ik bladeren en een map naam kiezen op mijn harde schijf, of invoeren.

    Dan is het proces elk CSV-bestand in die directory, de een na een andere, als volgt:

    Op elk bestand dat ik het nodig om eerst de bestandsnaam (verminderd met de extensie) en het uploaden naar de db in tabel categorie. Die tabel bevat een genummerde sleutel die zij vervolgens toegewezen aan die naam.

    Vervolgens heb ik nodig het script om alleen het woord colum (1e colum van gegevens) van het bestand uploaden naar tafel woorden, en de bijpassende nubmer voor de categorie naam van het eerste bestand toe te voegen.

    Opgemerkt moet worden dat het CSV-bestand vaak drie lijnen van de koptekst en een lege regel, alle vier, die ik wil genegeerd en niet geupload bevat. Er zijn vaak lege regels op te eend van het bestand dat ik ook wil dat het te negeren, die, evenals negeren andere kolommen die wel of niet in het CSV-bestand. In sommige gevallen is het csv-bestand kan geen kop-of een andere kolommen.

    Dan het volgende bestand, totdat het loopt uit de bestanden in de directory.

    Dan zou ik willen dat het me te vertellen "proces te voltooien.", En eventuele fouten te vertellen.

    Kan een van jullie me helpen met dit?

  24. kunt u uitleggen uw code die u wilt @ mysql_query ($ query) te vervangen, met de verklaringen van u gaf, maar het toont een fout $ bericht is niet gedefinieerd @ Andrew Fish

  25. nieuwste ontwikkeling van de code kan detecteren het niet van de lijnen in het CSV-bestand, maar het is niet weer te geven in de tabel

  26. de code is het retourneren van een verklaring dat het couldnt het csv-bestand te vinden ...
    wat kan het probleem zijn ....

  27. Oke, vond het probleem. Ik had mispelt de tabelnaam. Maar alleen het probleem gevonden toen ik voegde de volgende code die een fout zal terugkeren als de sql mislukt. Momenteel is het script niet zeggen of er een probleem geweest.
    Dus verander de regel
    @ Mysql_query ($ query);

    aan alle van de volgende: -

    $ Result = mysql_query ($ query);

    / / Check resultaat
    / / Dit toont de werkelijke vraag naar MySQL, en de fout. Nuttig voor het debuggen.
    if (! $ result) {
    $ Bericht "Ongeldige zoekopdracht: '=. mysql_error (). "\ N";
    'Whole query:' $ bericht .=. $ Query;
    sterven ($ bericht)

    Hoop dat het helpt iemand. Het deed me.
    AJ

    @ Andrew Fish

  28. Als ik dit script met behulp van een csv waarvan ik weet dat de import goed met behulp van PHP Admin uitvoert, wordt het script, meldt het juiste aantal rijen met de boodschap "Found een totaal van 193 records in dit csv-bestand." Maar geen van de gegevens verschijnen in de tafel. Ik heb wijzigingen aangebracht in de csv, zodat ik kan zien of de gegevens worden gelegd in de tabel en het is niet. Het even welke ideeën?
    AJ

  29. Mijn CSV importbestand heeft ook dubbele aanhalingstekens rond elk gebied (hoofdzakelijk om problemen te voorkomen als ik het nodig om te importeren in Excel, zodat het niet mangel van de gegevens), dus ik had dit probleem waar het was het inbrengen van de records met aanhalingstekens de gegevens. Ik heb al de dubbele aanhalingstekens ontdaan door het toevoegen van deze regel:

    $ Lijn = str_replace ("\ "","",$ lijn);

    na deze regel:

    $ Lijn = str_replace ("\ r ","",$ lijn);

    en de nieuwe lijn vervangt de dubbele aanhalingstekens met niets. Het is hetzelfde als de lijn voor, behalve het verwijderen van \ "in plaats van \ r (dubbele aanhalingstekens in plaats van regelteruglopen).

    @ Neady

  30. Een grote kleine programma.

    Is er een manier om gegevens in een cel bijvoorbeeld te vervangen. 'Stad' in de CSV en verander het naar een waarde uit een vorige pagina, zoals een $ _SESSION of $ _POST waarde?

  31. Dit is geweldig ... zeer eenvoudig te implementeren. Nu moet uitzoeken hoe deze of soortgelijke script te gebruiken om te uploaden. XLS-bestand samen met. CSV-bestand

  32. @ Mike
    Kunt u proberen toe te voegen:
    set_time_limit (0);
    meteen aan het begin? (Direct na de opening van php-tag)

  33. @ Exclusive Tutorials
    Is er een manier om het te hebben geen time-out? het werkt geweldig met 100k records, maar als ik gaan voor iets groots, zoals een mil of meer, loopt voor ongeveer 20 sec daarna gaat naar leeg scherm en advertenties geen records.? Bedankt.

  34. Met exact hetzelfde probleem, kan iemand mij helpen aub?

    Roy :
    Hi,
    Ik gebruik dit script naar een CSV-datafeed importeren naar mysql.
    Het enige probleem dat ik heb, is dat de aanhalingstekens "" zijn ook opgenomen in mijn tabellen
    Delimiter:, (komma)
    Behuizing: "(aanhalingsteken)
    Nieuwe regel: \ r \ n

  35. HI vrienden,

    Ik had dringend hulp van jou ... Dus zo vriendelijk mij helpen hier is de code ...

    Bereid het HTML-bestand. Maar ik moet php oplossing ... Gelieve te helpen voor mij ... ... ..

    SMS-

    Ontvanger Mobiele nummer:
    +91

    Telefoonboek

    Upload Excel-bestand:

    <!-->
    <Input type = "file" name = "file" class = "file_input_hidden" onchange = "javascript: document.getElementBy

    Sender ID:
    :

    YOGA
    Graaf
    Mobitel

    var frmvalidator = new Validator ("freesms2 ');
    frmvalidator.addValidation ("frno", "req", "Enter mobiele nummer");
    frmvalidator.addValidation ("frno", "num", "Mobiel nummer veld moet bevatten nummers");
    frmvalidator.addValidation ("frno", "MinLengte = 10000", "Mobiel nummer moet 10.000 cijfers");
    frmvalidator.addValidation ("message3", "req", "Enter SMS tekst");

    met vriendelijke groet,
    Ravi Kumar

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

    $ Sql5 = mysql_query ("select * from post waar item = '$ data [0 ]'");
    $ Num = mysql_num_rows ($ sql5);
    if ($ num == 0)
    {
    $ Import = "INSERT in de item (item, gweight, dweight) waarden ('$ data [0 ]','$ data [1 ]','$ gegevens [2 ]')";
    mysql_query ($ import) or die (mysql_error ());
    }
    else {

    echo "$ data [0] exit";
    }
    }
    fclose ($ handle);
    print "Import gedaan";

    }

    anders
    {
    ?>

    Type bestandsnaam te importeren:

    Datum
    setIcon ("images / iconCalendar.gif");
    $ MyCalendar-> DatumInstel (date ('d'), datum ("m"), datum ('Y'));
    $ MyCalendar-> setPath ("./");
    $ MyCalendar-> setYearInterval (2010, 2020);
    $ MyCalendar-> dateAllow ('2008-05-13 ', '2020-12-31');
    $ MyCalendar-> setDateFormat ("Y / m / d ');

    $ MyCalendar-> writeScript ();
    ?>

    het werkt prima op als ik csv-bestand uploaden op localhost, maar zien file missing fout bij het draaien op server.please mij helpen, dank bij voorbaat

  37. kaundo le doy descarga me aparecen muchos ritsen todos los Archivos los Ubico en una sola carpeta? ¿

  38. Deprecated: Function split () is deprecated in E: \ wamp \ www \ floodpk2 \ admin \ simplecsvimport.php on line 63
    Bestand is niet beschrijfbaar, controleer permissies. Vond een totaal van 1498 records in dit csv-bestand.

    plz help me dringend

  39. 8pills.com is uw one-stop oplossing voor de gezondheidszorg. 8pills.com bieden de beste van de klas generieke en Branded medicijnen.

  40. ik ben geconfronteerd met merken onder-

    Notice: Undefined offset: 1 in C: \ wamp \ www \ Nieuwe map (2) \ exl8.php on line 20

    Notice: Undefined offset: 2 in C: \ wamp \ www \ Nieuwe map (2) \ exl8.php on line 20

    Notice: Undefined offset: 2 in C: \ wamp \ www \ Nieuwe map (2) \ exl8.php on line 20

  41. Hier is de code btw,

    $ Databasehost = "localhost";
    $ Databasenaam = "database";
    $ Databasetable = "tafel";
    $ Eigen database = "admin";
    $ Databasepassword = "admin";
    $ Fieldseparator = "";
    $ Lineseparator = "\ n";
    $ Csvfile = "https://linktosite/";
    $ Addauto = 0;
    $ Besparen = 0;
    $ Uitvoerbestand = "output.sql"; / / als te besparen is op (1)
    $ File = fopen ($ csvfile, "rb");
    $ Csvcontent = stream_get_contents ($ file);

    fclose ($ file);

    $ Con = @ mysql_connect ($ databasehost, $ database invoeren, $ databasepassword) or die (mysql_error ());
    @ Mysql_select_db ($ databasenaam) or die (mysql_error ());

    $ Lijnen = 0;
    $ Query = "";
    $ Linearray = array ();
    foreach (split ($ lineseparator, $ csvcontent) als $ lijn) {

    $ Lijnen + +;

    $ Lijn = trim ($ line, "\ t");

    $ Lijn = str_replace ("\ r ","",$ lijn);

    /************************************
    Deze lijn ontsnapt het speciale teken. verwijderen wanneer er items zijn al ontsnapt in het CSV-bestand
    ************************************/
    $ Lijn = str_replace ("'"," \ '", $ regel);
    /*************************************/

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

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

    if ($ addauto)
    $ Query = "INSERT INTO $ databasetable waarden (",'$ linemysql');";
    anders
    $ Query = "INSERT INTO $ databasetable waarden ('$ linemysql');";

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

    @ Mysql_query ($ query);
    }

    @ Mysql_close ($ con);

    if ($ opslaan) {

    if (! is_writable ($ uitvoerbestand)) {
    echo "Bestand is niet beschrijfbaar, controleer de rechten \ n.";
    }

    else {
    $ Bestand2 = fopen ($ uitvoerbestand, "w");

    if (! $ bestand2) {
    echo "Fout bij schrijven naar de output file \ n.";
    }
    else {
    fwrite ($ bestand2, $ query);
    fclose ($ bestand2);
    }
    }

    }

    echo "Found een totaal van $ lijnen records in deze csv bestand. toegevoegd aan DB \ n ".;

  42. Hi,

    Ik gebruik dit script naar een CSV-datafeed importeren naar mysql.
    Het enige probleem dat ik heb, is dat de aanhalingstekens "" zijn ook opgenomen in mijn tabellen
    Delimiter:, (komma)
    Behuizing: "(aanhalingsteken)
    Nieuwe regel: \ r \ n

  43. Nice work!

    Ik heb wel een vraag.

    Is het mogelijk om meer tekens te gebruiken om het exploderen commando in het script?
    Ik allso nodig dat er een scheiding met een. en;

    Hartelijk dank als sommige lichaam heeft geen idee!

  44. Ik gebruik deze code ... ... ... Het is te makkelijk om het uit te voeren op mijn site ... ..
    Heel erg bedankt ..

    Ik wil wat meer code voor php ... ...
    Om de pagina om te zetten in pdf ...

  45. Hi,
    Aan deze fout. hoe dit op te lossen?

    Fout:
    Bestand is niet beschrijfbaar, controleer permissies. Vonden in totaal 13 records in dit csv-bestand.

    Bedankt
    Haan

  46. Hmm .. Ik heb fouten als deze "Bestand is niet beschrijfbaar, controleer permissies. Vond een totaal van 2 records in dit csv-bestand. "Enig idee wat er mis ging?

  47. Hmm .. Ik heb fouten als deze "Bestand is niet beschrijfbaar, controleer permissies. Vond een totaal van 2 records in dit csv-bestand. "Enig idee wat er mis ging?

  48. Om naar de eerste regel / rij dat is een header in csv-bestand doe je dit:
    ... ..
    if ($ lines> 1) {

    if ($ addauto)
    $ Query = "INSERT INTO $ databasetable waarden (",'$ linemysql');";
    anders
    $ Query = "INSERT INTO $ databasetable waarden ('$ linemysql');";

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

  49. Ik had dit script draait goed onder een ander domein. Toen ik het bewoog, de cron job download het CSV-bestand, slaat ze op, en verwijdert het maar doesnt uploaden naar mysql. Als ik kijk naar het import.php bestand en probeer het uit te voeren krijg ik de foutmelding: kan bestand niet vinden zorg ervoor dat u het juiste pad. Help.

  50. Als u wilt voorkomen dat het plaatsen van de eerste rij, gewoon spelen met de teller, bijvoorbeeld:

    $ Lijnen = 1; (De waarde van de teller is 1)
    $ Query = "";
    $ Linearray = array ();

    foreach (split ($ lineseparator, $ csvcontent) als $ lijn) {

    $ Lijnen + +; (Wijst de eerste regel # 2 (header)

    if ($ lines> = 3) {(Start op # 3 "iets hoger of gelijk aan 3")

  51. Geweldig script, maar ik heb terugkerende problemen.
    Nadat ik het script, het zegt "Gevonden in totaal 1 records in dit csv-bestand. '.
    Ik keek terug in mijn tabel en het toont een leeg.
    Ik gecontroleerd om ervoor te zorgen dat er was het juiste aantal kolommen en er waren.
    Please help!

    Bedankt,
    Coulton

  52. Als ik beperkt tot de klant harde schijf hoe ga ik het csv-bestand te uploaden naar de server.for bijvoorbeeld toegang kunnen we standaard waarde te uploaden controle bestand

  53. Dit was zeer nuttig voor mij ... maar ik moest een wijziging voor het lezen van grote bestanden te maken. Ik was in de war in het begin, maar toen realiseerde het script laadt het hele bestand in het geheugen (rechts?). Dus hier is een aangepaste versie van de code, die lijnen in een voor een leest. Het leest in bestanden die lijken op
    beginnen bestand:
    2,3, -1
    1, -2,4
    end-bestand (met veel meer waarden). ik wilde elke regel op een entry in de tabel en een id met de lijn nummer, evenals de eerste id die de grootte van de tabel (die niet zullen later veranderen) zijn.

    <? Php

    /********************************/
    / * Code op https://legend.ws/blog/tips-tricks/csv-php-mysql-import/
    / * Onder Bewerk de inzendingen voor de juiste waarden weerspiegelen
    /********************************/
    $ Databasehost = "localhost";
    $ Databasenaam = "tomoku";

    $ Eigen database = "root";
    $ Databasepassword = "root";
    $ Fieldseparator = "\ n";
    $ Lineseparator = "\ n";

    / / Deze code moet worden gelezen tatami-bestanden in de database

    $ Con = @ mysql_connect ($ databasehost, $ database invoeren, $ databasepassword) or die (mysql_error ());
    @ Mysql_select_db ($ databasenaam) or die (mysql_error ());

    / / Deze lussen over een bos van bestanden
    for ($ r = 2; $ r <14; $ r + +) {
    for ($ c = $ r; $ c

  54. De volgende was de truc voor mij:
    LOAD DATA LOCAL LOW_PRIORITY INFILE
    'C: \ \ Documents and Settings \ \ Administrator \ \ Desktop \ \ SigmaS1.csv'
    INTO TABLE `mijndb`. Mytable ``
    FIELDS ontsnapte door '\ \'
    TERMINATED BY ','
    Optioneel omsloten door '"'
    LINES TERMINATED BY '\ r \ n'
    (`De gebruiker`, `pwd`, `Sno`, `amt`, `ActiveRec`);

  55. Het script is het lezen van een extra regel uit het CSV-bestand. bijvoorbeeld als de csv-bestanden heeft 25 records Het blijkt dat er 26 records. Kunt u mij vertellen waar ik ga verkeerd?

    Ik heb toegevoegd om te controleren of het gaat om een ​​eerste lijn en blijven lus als de eerste lijn.

    bedankt

  56. Net als Gary, ik wil in staat zijn om een ​​bestaande record te overschrijven, maar door het bijwerken, niet verwijderen van alle gegevens in de db. Sp ergens hier in de buurt:

    if ($ addauto)
    $ Query = "INSERT INTO $ databasetable waarden (",'$ linemysql');";
    anders
    $ Query = "INSERT INTO $ databasetable waarden ('$ linemysql');";

    Hoe zou ik controleren of het record bestaat en dan eerder dan de update Insert?

  57. Hoe sla ik de eerste regel / rij dat is een header in csv-bestand en voeg de rest van de gegevens in de db?

  58. @ Gary
    je zou kunnen gebruiken een @ mysql_query ("truncate $ databasetable"), direct na de @ mysql_select_db statement.
    Maar wees voorzichtig als deze actie zal wegvagen de gegevens en is niet omkeerbaar.

  59. @ Kish
    de huidige code niet mogelijk browsen voor / uploaden van het bestand.
    U kunt het CSV-bestand gewoon in dezelfde directory als de PHP-script, en zet u de $ csvfile variabele gelijk te zijn aan de bestandsnaam (zonder pad)

  60. Hallo allemaal,

    Hoe kan ik bevatten deze csv citaten in de datum "dag, maand datum 2010" en de staat "prov, staat" om een ​​kolom in mijn data base? Ik zie veel voorbeelden, maar ik kan niet krijgen om te werken. alle hulp zou goed zijn.

    ak, 10037591,1, "dinsdag de 9 maart 2010 15:55:16 ', 59.7151, -151.4434,2.7,75.90,32,' Kenai schiereiland, Alaska"
    thx

  61. Pingback: data_type

  62. Bedankt, heeft deze code echt geholpen!

    Hoe zou ik dit veranderen, zodat een formulier dat moet worden weergegeven waarin de gebruiker bladert en selecteert de csv-bestand te importeren in de tabel?

    En ook hoe kon ik het zo maken dat elke keer een nieuw bestand wordt ingediend zou negeren alles wat op dit moment is opgeslagen in de tabel?

    Veel dank

  63. Dit is erg handig code voor mij ..
    dank.

    Hoe kan ik de browse bestand in plaats van te typen het volledige pad naam ..

    Gelieve te helpen in deze.

    bedankt

  64. i didnt get it hoe het werken vanuit een bestand te controleren. betekent in de eerste bladeren en kies een bestand en vervolgens voorleggen waar ik moet aangepast

  65. Hallo,

    Wat aanpassingen gemaakt. . Mijn txt-bestand heeft 3 kolommen, gescheiden door een "|" (pipe) karakter. Het script geeft de bestandsgegevens, telt de rijen, maar niet de gegevens in te voeren in de database. Eventuele opmerkingen?

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

    fclose ($ file);

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

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

    $ Lijnen = 0;
    $ Query = "";
    $ Linearray = array ();

    $ Count = 0;

    foreach (split ($ lineseparator, $ csvcontent) als $ lijn) {

    $ Count = $ count + 1;

    $ Lijnen + +;

    $ Lijn = trim ($ line, "\ t");

    $ Lijn = str_replace ("\ r ","",$ lijn);

    /************************************
    Deze lijn ontsnapt het speciale teken. verwijderen wanneer er items zijn al ontsnapt in het CSV-bestand
    ************************************/
    $ Lijn = str_replace ("'"," \ '", $ regel);
    /*************************************/

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

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

    if ($ addauto)

    $ Query = "insert in indicatoren waarden ('$ tellen', '$ linemysql');";

    anders

    $ Query = "insert in indicatoren waarden ('$ linemysql');";

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

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

    echo "$ linemysql \ n";
    }

  66. Uitstekende script! Ik had een beetje jump start voor een project waar ik mee bezig was en dat deed de truc.

    Ik heb wel gemerkt iets vreemds ik echter het script aangepast om te werken met een formulier en ik heb wel gemerkt dat voor het zoeken, het laatste veld kreeg Vervloekt, want de nieuwe lijn char (ofwel \ r of \ n of beide) nog steeds wordt opgenomen in de MySQL database.

    Te dien einde, wanneer u het commando:
    $ Lijn = str_replace ("\ r ","",$ lijn);

    met:
    $ Lijn = str_replace ("\ r',",$ lijn);

    het houdt de terugkeer dat het een probleem, als voor de nieuwe lijn, ik heb nog een kleinigheidje die het mogelijk maakt voor het invoegen van nieuwe records, maar updates van bestaande records, zodat je niet eindigt met dubbele invoer. Op de top van de onderstaande code, zal je zien waar ik hetzelfde vast voor de feitelijke nieuwe lijn char.

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

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

    if ($ addauto) {

    switch ($ databasetable) {

    case ('adres'):

    $ Duplicatevals = "adres = VALUES (adres),
    city ​​= VALUES (stad), de staat = VALUES (staat),

    zip = VALUES (zip) ";

    te breken;

    geval is ('eigenaar'):

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

    addresskey = VALUES (addresskey) ";

    te breken;

    }

    $ Query = "INSERT INTO $ databasetable waarden (",'$ newlinemysql ')

    Op dubbele KEY UPDATE

    $ Duplicatevals ";

    } Else {

    $ Query = "INSERT INTO $ databasetable waarden ('$ linemysql')

    Op dubbele KEY UPDATE

    $ Duplicatevals ";

    }

    Ook in mijn vorm voegde ik de tabelnaam en of ik wilde de tabel op [boolean] "addauto" wel of niet als een enkele input van een drop-down (komma gescheiden) dan het resultaat aan de bovenkant van de simplecsvimport split script.

    Tot slot, je aan te denken om indexen in de database voor de "ON DUPLICATE ..." om te werken, auto stappen niet werken in dit geval, dus je moet een secundaire index ingesteld op de auto-increment tabellen, de tabellen die don 't auto-increment en hebben unieke velden te werken met de single-index als dat de route die u wilt gaan.

    Ik hoop dat dit helpt iemand!

    Cheers!

  67. Ik moet automatisch downloaden van gegevens uit een externe server. Het is een CSV-bestand, en ik moet het uit te pakken, en de gegevens opslaan in een mysql database die ik heb gemaakt. Er zijn meerdere databases. Het eerste deel hieronder is een van de databases dat iemand me geholpen met en het werkt wonderwel. Ik heb het opzetten van een cron job en het downloadt deze automatisch zoals gepland. Ik heb echter meer databases en cant get de anderen aan het werk.

    DEZE SECTIE HIERONDER werkt prima!!
    --------------------------

    #! / Bin / bash

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

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

    # If [-z "$ 1"], dan
    # Echo gebruik: 0 dollar tafel
    # Exit
    # Fi

    ZIP = naam van het gegevensbestand in remote server
    ZIP = `toupper $ ZIP`

    # Het bestand in de zip heeft een minder _
    DATA = naam van de tabel in mijn MySQL database
    DATA = `toupper $ data`

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

    cd / $ HOME / MyFolder / MyFolder /
    ####### Krijgen de residentiële

    wget -O $ ZIP.csv.zip
    slapen 10
    ####### Pak het uit
    pwd
    ls-la

    unzip-o $ ZIP.csv.zip
    slapen 10
    ####### Laden

    wget-verbose $ deleteparam $ map $ userpwd https://mywebsite/myfolder/import.php?table = $ data
    slapen 300

    ###### Verwijdert u de bestanden

    rm $ ZIP.csv.zip
    rm $ DATA.csv
    slapen 10
    _ ---------------------------
    AL VAN DEZE bovenstaande niet helpt WONDERFUL

    DIT IS WAT IK Hulp nodig bij
    --------------------------
    1. Ik moet een script toe te voegen aan het bovenstaande bestand dat wordt gedownload van de foto's. Als u hieronder heb ik een script dat automatisch wordt de huidige datum en het tijdstip waarop het script wordt gerund. Er server houdt foto van de laatste 7 dagen en wordt voortdurend bijgewerkt. Als dit script wordt gerund zal het downloaden van gegevens in de tabel die ik heb gemaakt.

    2. Dan, ik heb een script dat de mysql database op zoek naar items die foto's hebben en dan direct terug de werkelijke foto's van hun servers op afstand vragen. Dit csv-bestand NIET te downloaden foto's, alleen gegevens die ik kan gebruiken om een ​​script uit te voeren om de foto's op te halen bij een bepaalde plek. Zie hieronder.
    Hieronder staan ​​de instructies die ik ontving.

    INSTRUCTIES
    Foto gegevens worden opgehaald door HTTP. De foto's data is bijgewerkt eenmaal daags en is beschikbaar om te downloaden als een CSV-bestand. U kunt dan een script schrijven met behulp van de gegevens uit het CSV-bestand terug naar de beelden op ons imago server punt. U dient een waarde voor de query string last_updt> 'JJJJMMDD HH: MM: SS' voor de URL om gegevens terug te keren. Het veld last_updt is de datum waarde voor de laatste keer dat een foto is veranderd aan de lijst.

    U moet de user_code en wachtwoord in plaats houders (XXXX) te vervangen door de inloggegevens aan u verstrekt.

    Stap 1: Om de primaire notering foto data CSV-bestand te halen naar de onderstaande URL.

    Stap 2: De foto's tabel gegevens moeten downloaden in een CSV-formaat.

    Stap 3: Het gebruik van de Y-vlaggen en de ML nummer in de gegevens die u kunt terug link naar onze imago locaties.

    Onze primaire image map pad is als volgt:

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

    Bijvoorbeeld-De primaire foto voor het opnemen van nummer 1899430 is gelegen op

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

    Onze aanvullende image map pad structuur is als volgt:

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

    Bijvoorbeeld-De tweede foto voor het opnemen van nummer 1899430 is gelegen op

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

  68. Hoi, vertelt me ​​het record tellen, maar niet zetten van gegevens in de database

    Hoop dat je kan helpen

    Nathan

  69. de opdracht is: afkappen tabelnaam.

    U kunt de volgende on line 58:
    @ Mysql_query ("truncate $ databasetable");

    maar dit is niet omkeerbaar! dus wees voorzichtig

  70. Hoe kan ik mijn al gevulde tafel leeg is voordat u het nieuwe bestand?
    of kan ik een update van een reeds bestaand input?

    TRUNCATE, UPDATE? Hoe krijg ik dit in de query?

  71. @ Andy Brotherton : Dit betekent dat de query is een poging om een record te voegen met een aantal kolommen die niet overeenkomen met dat van de database tabel.

    1) Weet u zeker dat het CSV-bestand exact hetzelfde aantal kolommen heeft als de tabel in de database?
    2) Is het veldscheidingsteken in dit CSV-bestand echt een komma? of is het een tab bijvoorbeeld of een andere? Als het niet een komma, de waarde van $ fieldseparator on line 12
    3) De tabel moet er al worden gecreëerd in de database voordat u probeert om gegevens te laden in. Weet je zeker dat je het hebt?

  72. Hallo,

    Ik zou heel graag dit script gebruiken, maar ik ben niet zeker wat ik verkeerd doe. Ik krijg het zelfde probleem met de hierboven vermelde gegevens niet laden in de db. Het vindt het juiste aantal rijen, maar niets te zien in de db.

    Ik veranderde lijn 88 @ mysql_query ($ query) or die (mysql_error ());

    en krijg deze melding "Kolom aantal komt niet overeen met waarde aantal in rij 1"

  73. @ Claus
    Hallo Claus.
    Is het CSV echt bevatten een record?

    Omdat het script het stadium bereikt waar het uitgangen van het aantal records, ik neem aan dat niet mislukken als hij is aangesloten op de database (lijnen 56-57) dus dat is niet het probleem.

    Het is mogelijk dat de query om gegevens te plaatsen is het niet.
    Probeer het vervangen van lijn 88 met:
    mysql_query ($ query) or die (mysql_error ());

    en kijk welke fout je krijgt.

  74. @ Okoth
    Hallo Okoth.

    Het meest waarschijnlijk, kunt u zich te ontdoen van lijnen 33-54 en vervang ze door deze ene regel:

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

    vervangen door de punten met de juiste url (directe URL naar het CSV-bestand)

  75. @ Adrian
    Hallo Adrian.
    Drupal, zoals u hebt genoteerd, heeft complexe tabel structuren. Afhankelijk van wat voor soort gegevens u wilt importeren, is het zeer waarschijnlijk dat deze gegevens moeten worden opgesplitst in meerdere tabellen, meestal met een gemeenschappelijk buitenlands-toets zoals het knooppunt id.
    Helaas zou het script bovenstaande niet helpen dat doen.

  76. Bedankt voor het script. Heel begrijpelijk.

    Hoe kan ik dit script aanpassen zodat het haalt en opslaan van een csv-bestand van het internet in MySQL?

  77. Hi All
    Ik counter gebruikt om een ​​nieuwe website te bouwen, de uitdaging die ik nu ben hebben, is dat ik nodig heb om gegevens te importeren uit een CSV-bestand in een mysql database die is gedeeld tafels, daarom enkele van de velden in die ik nodig om CSV-gegevens te importeren zijn in verschillende delen van dezelfde database zal dit script werk voor mij? Indien niet kan dit CSV-bestand worden geïmporteerd met een andere methode?

    Gelieve, bedankt voor alle hulp.

    Groeten
    Adrian

  78. Hallo iedereen!

    Lijken het script te werken hebben ... behalve dat het niet de gegevens om de mysql schrijven ...
    Net als bij Chris: Het script is voltooid, en zelfs uitgangen van de plaat tellen, maar de database niet aan te raken ... maar vertelt me: Gevonden in totaal 1 records in dit csv-bestand.

    Wat doe ik verkeerd (im een ​​noob in php en mysql)

    Bedankt
    Claus

  79. Hoi Stanley, het probleem is met de enkele aanhalingstekens. De blog software hier herschrijft ze. Vervang gewoon 'en' met '

    PS: het bovenstaande commando is om een ​​csv-bestand direct te laden in de database van de mysql prompt. Dit is leuk, maar niet gerelateerd aan het script boven :)

  80. het zegt om deze belasting in de data base

    gegevens laden lokale infile 'pad' in de tabel tabelvelden beëindigd door ',' lijnen beëindigd door '\ n';

    ik het pad en de tafel zijn gaan op maar het geeft me een fout die haar de verkeerde syntax code 1064

    kan iemand mij wat advies over wat te doen

    bedankt
    stan

  81. Met betrekking tot de aanhalingstekens probleem, dan kunt u gewoon gebruik maken van deze:

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

    Cheers,
    Gaz.

  82. Beste Chris,

    gelieve te vervangen:
    @ Mysql_query ($ query);
    met:
    @ Mysql_query ($ query) or die (mysql_error ());

    en laat me weten wat fout het geeft je

  83. Hey iedereen,

    Hou van dit script, en het werkte prima, nu opeens het script gewoon plaats de records. Het script is voltooid, en zelfs uitgangen van de plaat tellen, maar de database niet aan te raken ...

    Het even welke ideeën?

    Bedankt
    C

  84. Hoi Mark,

    eerste, is het verwijzen naar het bestand dat u geselecteerd in het $ uitvoerbestand variabele.
    seconden, dit bestand moet schrijfbaar zijn. Ik neem aan dat je Linux, niet Windows gebruikt, omdat dit over het algemeen niet een probleem met Windows.
    Op linux, gewoon SSH naar de machine, naar de map waar de output bestand is, en typ: chmod 777 filename
    waar 'bestandsnaam' is de werkelijke bestandsnaam.
    Als u niet beschikt over SSH, veel FTP-clients ondersteunen toestemming te wijzigen. Voor dit doel, FTP naar de map met het output bestand, selecteer vervolgens het bestand, en zoek uit deze ftp-software de mogelijkheid om toestemming te veranderen. Stel deze in op 777, of 'lezen, schrijven, uitvoeren' voor iedereen.

  85. Hallo allemaal,

    Bedankt voor het script. Ik ben een noob in PHP en MySQL, zodat ik echt waarderen zoiets als dit. Ik kwam tot het genereren van de "File is niet beschrijfbaar, controleer de rechten" foutmelding in mijn browser. Kan iemand uitleggen van de opmerking over het instellen van de toestemming om 777? Ik maak gebruik van een Excel-gegenereerd. CSV-bestand? Dank bij voorbaat.

  86. Ik kan alleen maar de eerste regel van mijn CSV-bestand dat moet worden geïmporteerd in de database.
    Hier is een kopie van het logbestand:

    invoegen in productie waarden (", '2008-10-21 ', '50', '50 ', '50', 'dit is de eerste noten lijn', 'dit is nota lijn 2', 'dit is nota lijn 3 ', '0000-00-00', '0000-00-00 ', '0000-00-00', '456 Morningside Ave ',' Ste. 512 ',' Brooklyn ',' NY ', '10023', 'Joe', 'Customer 1');
    invoegen in productie waarden (", '2008-10-09 ', '50', '50 ', '50', 'dit is de eerste noten lijn',",",' 2008-10-09', '2008 -10-14 ', '0000-00-00', '456 Morningside Ave ',' Ste 512 ',' Brooklyn ',' NY ', '10023', 'Joe', 'Customer 1').;
    invoegen in productie waarden (", '2008-10-14 ', '25', '25 ', '25', 'OPMERKINGEN een',",",' 2008-10-14', '2008-10-17 ',' NULL ', '555 ergens', 'suite 123', 'new york', 'nieuwe y', '10001 ',' Joe ',' Naam 1 ');
    invoegen in productie
    invoegen in productie
    invoegen in productie waarden (", '2008-10-17 ', '50', '50 ', '50', 'dit is de eerste noten lijn',",",' 2008-10-03', '0000 -00-00 ', '0000-00-00', '456 Morningside Ave ',' Ste 512 ',' Brooklyn ',' NY ', '10023', 'Joe', 'Customer 1').;
    invoegen in productie waarden (", '2008-10-18 ', '25', '25 ', '25', 'OPMERKINGEN een',",",' 2008-10-04', '0000-00-00 ', '0000-00-00', '555 ergens ',' suite 123 ',' new york ',' nieuwe y ', '10001', 'Joe', 'Naam 1');
    invoegen in productie
    invoegen in productie waarden (", '2008-10-20 ', '34', '34 ', '34', 'nieuwe noten',",",' 2008-10-06', '0000-00-00 ', '0000-00-00',",",",",",' Steve',");
    invoegen in productie waarden (", '2008-10-21 ', '12', '12 ', '12', 'nog nieuwere notities',",",' 2008-10-07', '0000-00- 00 ', '0000-00-00',",",",",",' mark',");
    invoegen in productie
    invoegen in productie
    invoegen in productie
    invoegen in productie
    invoegen in productie waarden (", '2008-10-16 ', '0', '0 ', '0', 'later nog steeds',",",' 2008-10-12', '0000-00-00 ', '0000-00-00',",",",",",",");
    invoegen in productie waarden (", '2008-10-17 ', '0', '0 ', '0', 'later nog steeds',",",' 2008-10-13', '0000-00-00 ', '0000-00-00',",",",",",");
    invoegen in productie waarden (", '2008-10-18 ', '0', '0 ', '0', 'later nog steeds',",",' 2008-10-14', '0000-00-00 ', '0000-00-00',",",",",",");
    invoegen in productie
    invoegen in productie waarden (", '2008-10-01 ', '34', '34 ', '34', 'allernieuwste',",",' 2008-10-02', '2008-10-04 ', '2008-10-04',",",",",",' Bruce');
    invoegen in productie waarden (",");

    Het zegt dat het 20 records invoegen, maar alleen de eerste maakt het in de database. Alle gedachten?

  87. Hallo allemaal,

    Ik maakte een kleine wijziging in uw code, dus het werkt als een CSV-importeur, zoals het hoort.

    CSV-s eerste lijn moet in het bezit van de COLUMN namen die u wilt importeren, zodat u de foreach lus:
    foreach (split ($ lineseparator, $ csvcontent) als $ lijn) {

    $ Lijnen + +;

    $ Lijn = trim ($ line, "\ t");

    $ Lijn = str_replace ("\ r ","",$ lijn);

    / * Krijgen Kolomnamen van de eerste regel van het CSV * /
    if ($ lines == 1) {
    $ Columns = explode ($ fieldseparator, $ lijn);

    $ Columnsql = imploderen (",",$ kolommen);

    echo $ columnsql;
    voort te zetten;
    }

    /************************************
    Deze lijn ontsnapt het speciale teken. verwijderen wanneer er items zijn al ontsnapt in het CSV-bestand
    ************************************/
    $ Lijn = str_replace ("'"," \ '", $ regel);
    /*************************************/

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

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

    if ($ addauto)
    $ Query = "insert in $ databasetable ($ columnsql) waarden ('$ linemysql');";
    anders
    $ Query = "insert in $ databasetable ($ columnsql) waarden ('$ linemysql');";

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

    @ Mysql_query ($ query);
    }

  88. Hoe groot is het bestand dat u probeert te importeren?
    in ieder geval, probeer dan de volgende regel toe te voegen na de eerste opening tags:
    set_time_limit (300);
    Dit geeft het script tot 5 minuten (300 seconden) van uitvoering de tijd.
    Het vervangen van 300 met 0 zal toelaten om zoveel tijd nemen als nodig is.

  89. Hallo daar, leuk script bedankt. Bij het uitvoeren van het ik:
    Fatal error: Maximum uitvoeringstermijn van 30 seconden overschreden on line 63

    Is er iets wat ik kan doen om dit te omzeilen?

  90. Robbie, bedankt voor je toevoeging, het is zeer welkom. Helaas werkt het niet meteen als ik het te kopiëren. Ik denk dat er iets ontbreekt, omdat de code is verdeeld over twee berichten.

    Zou u de code zoals hier afgebeeld? Is er iets ontbreekt?

  91. brad, als je had gedownload eerder dan vorige week, vervang dan de '<?' aan de top met '<? php' (verwijder spatie)

  92. krijg ik de eerste zo veel van het afgesneden en de rest alleen maar code in mijn browser. Ik weet dat php werkt omdat de rest van de site werkt.
    Ik heb de upgrade naar php5 doet dat ertoe?

  93. )
    / / Overslaan, omdat het valt binnen de slechte array-elementen
    anders
    $ Newarray [$ y] = str_replace ('"',",$ linearray [$ y]);
    $ Linearray = array_values ​​($ newarray), / / ​​de sleutels resetten naar de nieuwe array
    $ X + +;
    }
    }
    }

  94. Nou, hier is de oplossing om mijn vorige opmerking:

    Plaats dit in tussen:

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

    ... Onderstaande codefragment invoegen ....

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

    Vindt en houdt alle "Stuff, More Stuff" samen voor imploderende het.

    $ A = "";
    $ B = "";
    $ Qoutecount = 0;
    for ($ x = 0; $ x -1) {
    $ Qoutecount + +;
    if ($ qoutecount == 1)
    $ A = $ x / / bewaar de eerste plaats
    elseif ($ qoutecount == 2) {
    $ Quotecount = 0;
    $ B = $ x / / bewaar de tweede instantie
    / / DAT WERKT HET ... verzamelen alle elementen van $ a naar $ b $ a in en negeren elementen alles na $ a naar $ b in nieuwe array;
    $ Newa = ""; / / initialiseren nieuwe string.
    for ($ z = $ a, $ z $ a & & $ y

  95. Houdt geen rekening met gebieden zoals deze lijn:
    Fname, lname, "Company, Inc", stad, staat, postcode

    Bedrijf en Inc krijgen gesplitst in twee verschillende kolommen.

  96. Rengaraj,
    het CSV-bestand moet in dezelfde plaats als het PHP bestand.
    Ook hoef je niet echt om dezelfde csv-bestand naam te gebruiken.
    bbqrest.csv is een voorbeeld, vervang dit bestand naam met uw eigen.

  97. Kan iemand antwoord snel heb ik een csv-bestand bbqrest.csv op de juiste pad (root) ..

  98. Ik krijg deze foutmelding Bestand niet gevonden. Zorg ervoor dat u hebt opgegeven het juiste pad.

  99. zou het een goed idee zijn om toe te voegen te voorkomen dat headers binnen de csv uit wordt ingediend in de database worden. Of om een ​​script dat trekt de eerste rij en zorgt voor een db met behulp van deze waarden als de kolomnamen te creëren.

  100. Steve,

    Je zou plaatsen dit script in een via het web toegankelijke map, na het veranderen van de variabelen die veranderd moeten worden. Lees het commentaar in het script uit te vinden wat je nodig hebt om aan te geven. Dan contact op met de script in een web browser, zoals:

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

  101. Totaal newbie - scheurt mijn haar uit proberen om Excel-csv te importeren in phpMyAdmin (op een Mac). Graag precies waar en wat ik doe met dit php script dat ...?

  102. Pingback: »CSV import

  103. Pingback: Importeer een komma gescheiden bestand in MySql met een PHP Script | eCommerce & SEO

  104. Hallo daar, een kleine wijziging voor het automatisch verhogen de waarden in kolom 1 (id veld)

    zie variabele $ count.

    Ola, enrico.

    / / $ Con = @ mysql_connect ($ databasehost, $ database invoeren, $ databasepassword) or die (mysql_error ());
    / / @ Mysql_select_db ($ databasenaam) or die (mysql_error ());

    $ Lijnen = 0;
    $ Query = "";
    $ Linearray = array ();

    $ Count = 0;

    foreach (split ($ lineseparator, $ csvcontent) als $ lijn) {

    $ Count = $ count + 1;

    $ Lijnen + +;

    $ Lijn = trim ($ line, "\ t");

    $ Lijn = str_replace ("'"," \ '", $ regel);

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

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

    $ Query = "INSERT INTO` uw db tabel `VALUES ('$ tellen', '$ linemysql');";

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

    @ Mysql_query ($ query);
    }

    / / @ Mysql_close ($ con);

  105. Pingback: »Het omzetten van csv naar sql met behulp van php @ The Coding Pad: Programming blog, discussies, tutorials, resources

  106. Ik meestal phpmyadmin gebruik, maar waar, in het geval een het niet heeft geïnstalleerd, en heeft geen shell toegang (zoals de meeste van de shared hosting providers), kan deze komen in zeer handig.

Laat een reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd *

*

U mag gebruik maken van deze HTML tags en ​​attributen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>