PHP Skript zur CSV-Daten in mysql importieren

Dies ist ein einfaches Skript, das können Sie CSV-Daten in Ihre Datenbank importieren. Dies kommt praktisch, weil man einfach bearbeiten Sie die entsprechenden Felder ein, laden Sie sie zusammen mit der CSV-Datei und rufen Sie aus dem Internet, und es wird den Rest erledigen.

Es ermöglicht Ihnen, das Trennzeichen in dieser csv-Datei angeben, ob es Koma, ein Register etc. Es erlaubt Ihnen auch, wählte die Zeile Trennzeichen ist, können Sie die Ausgabe in eine Datei (auch bekannt als Daten-SQL-Dump) zu speichern.

Es erlaubt Ihnen auch ein leeres Feld am Anfang jeder Zeile, die in der Regel ist ein Auto-Inkrement integer Primärschlüssel enthalten.

Dieses Skript ist nützlich vor allem, wenn Sie nicht über phpmyadmin, oder Sie wollen nicht die Mühe der Anmeldung und lieber ein paar Klicks Lösung, oder Sie sind einfach eine Eingabeaufforderung Kerl.
Nur stellen Sie sicher, dass die Tabelle bereits erstellt, bevor Sie versuchen, die Daten-Dump.
Bitte posten Sie Ihre Kommentare, wenn Sie irgendwelche Fehler melden habe.

Datei herunterladen hier

129 Kommentare zu "PHP-Skript, um CSV-Daten in mysql import"

  1. Hallo,

    Ich benutze dieses Script und funktioniert gut für mich. aber es fügt nur 237 Datensätze in MySQL-Tabelle, während in csv-Datei gibt es Summe 437 Datensätze.

  2. Ich werde auf jeden Fall nutzen diese. Ich frage mich nur, wie zu schützen oder zu implementieren, so dass ein Außenstehender nicht sie gegen mich. Ich bin diskutieren, um dieses Skript oder ein Perl-Skript, das ich von der Kommandozeile aus nutzen können. Thanks.

  3. Datei ist nicht beschreibbar, die Berechtigungen überprüfen. Gefunden insgesamt 1 Einträge in dieser CSV-Datei.
    Bitte helfen Sie mir, dieses Problem zu lösen. Ich habe nicht zu schaffen, dass output.sql Datei

  4. Vielen Dank!

    Es wirkt wie ein Zauber!

    Sehr nützlich, um einen Benutzer allaw eine Tabelle ohne wirklichen Zugang zu bevölkern.

    Nochmals vielen Dank :)

  5. Code, um CSV-Datei zu importieren mysq mit PHP: -
    Zunächst machen alle Acess Blatt um Excel und Excel Blatt zu speichern als csv-Datei

  6. Dies ist genau die Informationen, die ich suchte! Ich werde dieses Skript verwenden, um CSV-Daten in mysql importieren.

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

    Bitte helfen Sie, es zu lösen.

  8. Ich will meine CSV-Datei mit der Datenbank überprüfen zu lassen.

    In der Datenbank gibt es eine Reihe so-
    Testen 23 INDIA

    Meine CSV-Datei ist wie die-
    ABC 21 INDIA
    def 32 IN
    Testen 23 INDIA
    def 21 INDIA

    Wenn ich die csv-Datei hochladen muss sicherstellen, dass der Name "Test" ist bereits in der Datenbank und muss die Zeile zu verlassen und laden Sie die restlichen 3 Zeilen.

    Ist es möglich zu tun.

    Bitte helfen Sie.

    Thanks.

  9. Handlich Skript. Es könnte sein, dass Sie die Erstellung der Tabelle als auch (große csv ist mit vielen Spalten) benötigen. Daher ist eine slidly modifizierte Version, die die Tabelle mit den Überschriften der ersten Zeile in der CSV-Datei erstellen können.

  10. Hallo, ist dieses Skript großartig. Ich habe ein Problem wenn. Gibt es trotzdem zu den "Marken, die das Skript in meine Datenbank eingeben zu entfernen. Sie sind um jedes Eindringen in die Zelle.

  11. Pingback: Arbeits-und Parsing-CSV-Textdateien und PHP

  12. Hallo ...
    Ich bin mit einem Problem konfrontiert, wenn ich diese verwenden, zeigt seine eine Fehlermeldung, dass
    "Deprecated: Function split () ist in C veraltet: \ wamp \ www \ test1 \ simplecsvimport.php on line 64
    Datei ist nicht beschreibbar, die Berechtigungen überprüfen. Gefunden insgesamt 41 Datensätze in dieser CSV-Datei. "

    Pls antworten, was ist los!
    Vielen Dank im Voraus!

  13. Ich bin wirklich mit diesem Code zu verwechseln!
    aber ich werde nicht versuchen, nach oben!
    BTW, wie der Code oder das Feld html nennen diesen Code

  14. Danke, sehr gut csv Importeur.
    Aber ich ein kleines Problem gefunden, es funktioniert nur mit csv-Datei mit der Struktur: "Feld1", "Feld2", "field3", etc., aber ich hava eine CSV-Datei wie folgt aus: Feld1; Feld2; filed3; etc

    Das einzige, was ich ändern kann ist $ fieldseparator aber wie kann ich 'sagen' das Skript, das die Datei nicht verwenden "(Feld-Trennzeichen)?
    Meine IDEIA war eine Combobox mit $ fieldseparator (oder ;) und ein weiteres mit $ FieldDelimiter ("oder gar nichts)

    Vielen Dank im Voraus.

  15. Jede Idee, wie man dieses Skript für Felder, die mit Anführungszeichen eingeschlossen sind, so dass Felder mit Kommas in ihnen nicht als einen neuen Eintrag gelesen haben Arbeit bekommen?

    Ich habe Daten, die Kommas wie Dollar-Beträge und Kommentare, wo Anwender ein Komma verwendet haben könnte umfasst. Ich brauche das gesamte Feld importiert und dieses Skript behandelt sie als neue Felder.

  16. @ Joofoo
    Ich habe den Code geladen, aber ich bekomme keine aktualisierten Informationen über MySQL Datenbank ...

    CSV enthält:
    Header -> Benutzername, Passwort, Nachrichten, E-Mail, Bild, Datum
    Row2 -> Bill, dude,,,,
    Row3 -> Jane, gal,,,,
    Row4 -> David, Kind,,,,

    Und hier ist der Code ...:
    <? Php

    / / Set-up aus iphonelogin.php Datei in "remote"-Ordner ...
    / * Die * db / connect
    / / $ Link = mysql_connect ('ronbo.db.6405862.hostedresource.com', 'ronbo', 'Pepper0689') or die ('Kann nicht auf die DB connect');
    / / Mysql_select_db ('ronbo', $ link) or die ('Kann nicht wählen Sie die DB');

    / / http://www.ihappyapps.com/DataFolder/loader.php
    /********************************/
    / * Code auf http://legend.ws/blog/tips-tricks/csv-php-mysql-import/
    / * Bearbeiten Sie die Einträge, um die entsprechenden Werte spiegeln
    /********************************/
    $ DatabaseHost = "dbhost";
    $ Databasename = "name";
    $ Databasetable = "table";
    $ DatabaseUserName = "username";
    $ Databasepassword = "password";
    $ Fieldseparator = "";
    $ Lineseparator = "\ n";
    $ Csvfile = "spreadsheet.csv";
    /********************************/
    $ Addauto = 1;
    /********************************/
    $ Save = 0;
    $ Outputfile = "output.sql";
    /********************************/

    if (! file_exists ($ csvfile)) {
    echo "Server habe Ihre Anfrage, aber die CSV Datei, die Sie in die Datenbank laden nicht vorhanden ist ... .. \ n";
    exit;
    }

    $ Chunksize = 1 * (1024 * 1024);
    $ File = fopen ($ csvfile, "rb");
    if (! $ file) {
    echo "Fehler beim Öffnen der Datei \ n."
    exit;
    }

    $ Size = filesize ($ csvfile);

    if (! $ size) {
    echo "Datei ist leer \ n."
    exit;
    }

    $ Con = @ mysql_connect ($ DatabaseHost, $ DatabaseUserName, $ databasepassword) or die (mysql_error ());
    @ Mysql_select_db ($ databasename) or die (mysql_error ());

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

    $ Lines + +;
    if ($ lines <2) fortzusetzen;

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

    $ Line = str_replace ("\ r ","",$ Linie);


    Diese Zeile entgeht dem besonderen Charakter. entfernen Sie es, wenn bereits Einträge in der CSV-Datei entgangen sind

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

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

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

    $ Query = "insert into $ databasetable values ​​('$ linemysql');";

    if ($ save) $ Anfragen .= $ query. "\ N";

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

    $ Lines -= 3;

    @ Mysql_close ($ con);

    <>

    Ich könnte etwas Hilfe beim Start dieses an Arbeit zu nutzen ...
    Ron

  17. @ Roy
    Ich veränderte das Skript, so dass es weit weniger Speicher verbraucht bei der Verarbeitung von großen Dateien (es traf PHP Memory Limit, wenn ich es auf einem 100MB CSV-Datei zu verwenden versucht). Die Änderungen sind wie folgt:


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

    $ Size = filesize ($ csvfile);

    if (! $ size) {
    echo "Datei ist leer \ n."
    exit;
    }

    $ Con = @ mysql_connect ($ DatabaseHost, $ DatabaseUserName, $ databasepassword) or die (mysql_error ());
    @ Mysql_select_db ($ databasename) or die (mysql_error ());

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

    $ Lines + +;
    if ($ lines <2) fortzusetzen;

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

    $ Line = str_replace ("\ r ","",$ Linie);


    Diese Zeile entgeht dem besonderen Charakter. entfernen Sie es, wenn bereits Einträge in der CSV-Datei entgangen sind

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

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

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

    $ Query = "insert into $ databasetable values ​​('$ linemysql');";

    if ($ save) $ Anfragen .= $ query. "\ N";

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

    $ Lines -= 3;

    @ Mysql_close ($ con);

    Thank you,

  18. Ich habe versucht das Skript, aber die output.sql ist writting weird stuff,
    insert into test_excel values ​​('PK |?????? Q k5 q Q k5 q Q k5 q ...??.

    wie diese Dinge
    Wie kann ich dieses Problem beheben. spezielle Format für die Excel-Tabelle?

  19. Hallo, wollte nur euch alle wissen lassen, dass ich jemanden gefunden, schreiben Sie mir das aktuelle Programm was ich brauche.

  20. @ Warren

    /********************************/
    Diese Datei enthält viele versuchten Änderungen von Warren (kein Programmierer) am 28. Dezember 2010 ab beruhen auf Stellungnahmen an der Quelle vor Ort und andere Informationen, so dass dieses Programm in die er braucht zu machen. Dies ist sehr unvollständig. Hilfe ist sehr beliebt und auch sehr viel benötigt.

    Linien hinzugefügt, um Eingabefelder für Website-URL-Datenbank und das Passwort etc. erstellen
    /********************************/

    Willkommen auf Server hochladen Dienstprogramm

    Dieses Programm läuft von Ihrem PC auf zwei leere Tabellen in eine neue MySQL-Datenbank auf Ihrer Website zu füllen: Hochladen von jedem Dateinamen weniger die Erweiterung, mit einer eindeutigen Nummer vor als Gegenentwurf zu Tisch keywords_categories, und dann ordnet dann die Nummer 1 in die leere Spalte vor der ersten Colum von Daten aus dieser Datei, und erhöht die Zahl um eins für jede weitere Datei aus diesem Verzeichnis bearbeitet, so dass die Zahl assigend auf den Namen der Kategorie in der Tabelle die Schlüsselwörter zu ihr gehörenden welche Spiele dann zu Tisch Schlüsselwort hochgeladen.

    Dies gilt für alle csv-Dateien in einem bestimmten Verzeichnis auf Ihrem dem getan.

    Es ignoriert die ersten fünf Zeilen in Ihrer CSV-Datei.

    Website URL:
    Database Name:
    Database User Name:
    Database Password:
    Pfad des Verzeichnisses mit den Dateien zu laden:

    /********************************/
    Frage
    Wie kann ich über Daten aus Eingabefeldern erhalten in Programm übereinstimmen, dass unten angeforderten?
    /********************************/

    <? Php
    /********************************/
    Linie hinzugefügt timeout auf größere Dateien zu verhindern.
    /********************************/

    set_time_limit (0);

    /********************************/
    Holen Sie sich die Dateinamen der zu verarbeitenden Dateien, entfernen Dateinamenerweiterung verwenden Sie sie dann als Kategorie-Namen zu Tisch keywords_categories hochzuladen.
    /********************************/

    /********************************/
    Entfernt Dateinamen Erweiterungen
    kopiert von www perlmonks org /? node_id = 151232
    /********************************/

    sub parse_out_extension {
    die ("Keine Dateinamen \ n analysieren.") if (@ _!);

    my ($ file) = @ _;
    my @ Stücke;

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

    my $ end = pop (@ Stück);
    $ File = ~ s / \ $ end / /.;

    return ($ file), wenn $ file;

    /********************************/
    / * Original-Code am http://legend.ws/blog/tips-tricks/csv-php-mysql-import/
    / * Bearbeiten Sie die Einträge, um die entsprechenden Werte spiegeln
    /********************************/
    $ DatabaseHost = "localhost";
    $ Databasename = "test";
    $ Databasetable = "sample";
    $ DatabaseUserName = "test";
    $ Databasepassword = "";
    $ Fieldseparator = "";
    $ Lineseparator = "\ n";
    $ Csvfile = "filename.csv";
    /********************************/
    / * Möchten Sie eine ampty Feld am Anfang dieser Datensätze hinzufügen?
    / * Anmerkung von Warren im Fall der Stichworte, die die erste Spalte der Daten in jeder Datei, eine Datei durch Datei-Basis dieser neuen, leeren COUM Platz din frot der Schlüsselwörter werden muss geändert werden, damit er die Nummer der fängt Name der Kategorie, die sich aus dem Dateinamen weniger die Erweiterung gemacht wird und legt sie in diesem neuen, leeren ersten Spalte.
    / * Dies ist nützlich, wenn Sie eine Tabelle mit dem ersten Feld wird eine AUTO_INCREMENT integer haben. Hinweis von Warren. Dies ist, was muss im Falle der Dateinamen weniger exteniosn die Tabelle keywords_categories upoaded sind.
    / * Und die CSV-Datei muss nicht wie leere Feld vor der Aufzeichnungen.
    / * 1 für Ja und 0 für kein Set. ACHTUNG: nicht auf 1 gesetzt, wenn Sie nicht sicher sind.
    / * Dies kann Dump-Daten in die falschen Felder, wenn diese zusätzliche Feld nicht in der Tabelle vorhanden. Hinweis von Warren wahrscheinlich nicht brauchen diese Datei, die ich meinem Fall aber nur eine Vermutung meinerseits, aber tun müssen, um brauchen, wenn keine zu sehen.
    /********************************/
    $ Addauto = 1;
    /********************************/
    / * Möchten Sie die MySQL-Abfragen in einer Datei zu speichern? Wenn ja set $ bis 1 zu retten.
    / * Berechtigung für die Datei sollte auf 777 gesetzt werden. Entweder laden Sie eine Beispiel-Datei über FTP und
    / * Die Berechtigungen ändern, oder führen Sie an der Eingabeaufforderung ein: touch output.sql & & chmod 777 output.sql
    /********************************/
    $ Save = 0;
    $ Outputfile = "output.sql";
    /********************************/

    if (! file_exists ($ csvfile)) {
    echo "Datei nicht gefunden. Stellen Sie sicher, den richtigen Pfad angegeben \ n ".;
    exit;
    }

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

    if (! $ file) {
    echo "Fehler beim Öffnen der Datei \ n."
    exit;
    }

    $ Size = filesize ($ csvfile);

    if (! $ size) {
    echo "Datei ist leer \ n."
    exit;
    }

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

    fclose ($ file);

    $ Con = @ mysql_connect ($ DatabaseHost, $ DatabaseUserName, $ databasepassword) or die (mysql_error ());
    @ Mysql_select_db ($ databasename) or die (mysql_error ());

    /********************************/
    Um zu vermeiden, dem Einlegen der ersten vier Reihen von adveristing Header-Text in eine leere Zeile. Die Linie gleich Null Code wurde mit folgenden Code ersetzt.
    /********************************/

    $ Lines = 1; (Der Wert für den Zähler 1)
    $ Queries = "";
    $ Linearray = array ();

    foreach (split ($ lineseparator, $ csvcontent) as $ line) {

    $ Lines + +; (Weist die erste Zeile # 2 (header)

    if ($ lines> = 5) {(at # 5 Start "etwas höher oder gleich 5?)

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

    foreach (split ($ lineseparator, $ csvcontent) as $ line) {

    $ Lines + +;

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

    $ Line = str_replace ("\ r ","",$ Linie);

    /************************************
    Diese Zeile entgeht dem besonderen Charakter. entfernen Sie es, wenn bereits Einträge in der CSV-Datei entgangen sind
    ************************************/
    $ Line = str_replace ("'"," \ '", $ line);
    /*************************************/

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

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

    if ($ addauto)
    $ Query = "insert into $ databasetable Werte (",'$ linemysql');";
    sonst
    $ Query = "insert into $ databasetable values ​​('$ linemysql');";

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

    /************************************
    Dieses Stück Code unten wurde hinzugefügt, um nun Fehlermeldungen.
    ************************************/

    $ Result = mysql_query ($ query);

    / / Ergebnis prüfen
    / / Dies zeigt die aktuelle Abfrage an MySQL, und den Fehler. Nützlich für Debugging.
    if (! $ result) {
    $ Message = 'Ungültige Abfrage:'. mysql_error (). "\ N";
    $ Message .= 'Whole-Abfrage: ". $ Query;
    die ($ message)
    }

    @ Mysql_close ($ con);

    if ($ save) {

    if (! is_writable ($ outputfile)) {
    echo "Datei ist nicht beschreibbar, check permissions \ n."
    }

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

    if (! $ file2) {
    echo "Fehler beim Schreiben in die Ausgabedatei \ n."
    }
    else {
    fwrite ($ file2, $ Abfragen);
    fclose ($ datei2);
    }
    }

    }

    echo "Found einen Gesamtbetrag von $ Zeilen Datensätze in dieser csv-Datei \ n."

    ?>

  21. Nur eine leichte Korrektur auf meine Anfrage, werden die beiden Tabellen in der Datenbank MqSQL erwähnte ich tatsächlich angerufen:

    keywords_categories

    Stichworte

  22. @ Warren

    Auch könnten nur aus Neugier auch Prozess eine txt-Datei, (das hat gerade eine Liste von Wörtern in it) die gleiche Weise?

    (Ich bin auf diese neue und ich weiß, kann viel verlangt, so dass, wenn jemand dieses kleine Projekt für mich zu nehmen, wenn es angebracht ist, könnten wir vielleicht über meine zahlen einen kleinen Betrag für ihre Zeit in die Änderungen an erfüllen meine Bedürfnisse? Bitte lassen Sie mich wissen.)

    Meine E-Mail: wr.spence @ hotmail.com

  23. Ich bin kein Programmierer. Ich sehe das Skript und es könnte in der Nähe, was ich brauche, oder könnte vielleicht bilden die Grundlage von dem, was ich brauche, bin ich nicht sicher.

    Ich brauche die gleiche Upload-Funktion immer und immer wieder, aber aus einem anderen Unterverzeichnis jedes Mal von meiner Festplatte, um eine Liste der CSV-Dateien, und eine andere MySQL DB jedes Mal (auf einem differret Website jedes Mal) durchzuführen. In den meisten Fällen der db wird keine Daten drin, aber es wäre ideal (aber nicht unbedingt notwendig), wenn das Skript könnte noch mit einem db welche Daten gearbeitet haben, ohne die vorhandenen Daten).

    Ich brauche es, um die db auf dem Server anmelden (es sollte mir für die Website-URL und db Benutzernamen und ein Passwort, etc fragen).

    Ich brauche etwas, das mich zu durchsuchen und wählen Sie einen Verzeichnis-Namen auf meiner Festplatte, oder geben Sie es können.

    Dann Prozess jede csv-Datei in diesem Verzeichnis, eine nach einem anderen, wie folgt:

    Auf jeder Datei, die ich brauche es, um zuerst den Dateinamen (abzüglich der Erweiterung) und laden Sie sie auf der db in der Tabelle Kategorie. Diese Tabelle enthält eine nummerierte Schlüssel, der es dann auf diesen Namen zugeordnet.

    Ich habe dann müssen Sie das Skript nur das Wort Colum (1. Colum von Daten) der Datei zu Tisch Worten hochladen, und fügen Sie den passenden nubmer für den Namen der Kategorie aus der ersten Datei.

    Anzumerken ist, dass die CSV-Datei enthält oft drei Zeilen Kopftext und eine leere Zeile, alle vier, von denen ich ignoriert und wollen nicht hochgeladen werden. Oft gibt es Leerzeilen am te eend der Datei, die ich auch wollen, dass es zu ignorieren, die, wie auch ignorieren alle anderen Spalten, die können oder nicht in der CSV-Datei sein. In einigen Fällen kann die CSV-Datei darf keine Kopf-oder andere Spalten.

    Dann nächste Datei, bis es läuft aus Dateien im Verzeichnis.

    Dann möchte ich es mir zu sagen, "abzuschließen.", Und wenn irgendwelche Fehler, mir zu sagen.

    Kann einer von euch mir dabei helfen?

  24. Können Sie erklären Ihrem Code, den Sie möchten @ mysql_query ($ query) zu ersetzen; mit den Aussagen u gab, aber es zeigt eine Fehlermeldung $ message is undefined @ Andrew Fisch

  25. neueste Entwicklung des Codes kann die Anzahl der Zeilen in der CSV-Datei zu erkennen, aber es ist nicht die Anzeige in der Tabelle

  26. der Code ist wieder eine Aussage, dass es couldnt der csv-Datei zu finden ...
    wat das Problem sein könnte ....

  27. Okay, das Problem gefunden. Ich hatte der Name der Tabelle mispelt. Aber nur gefunden das Problem, wenn ich den folgenden Code, der einen Fehler zurückgibt, wenn der sql nicht hinzugefügt hatte. Derzeit das Skript nicht sagen, ob es ein Problem gewesen ist.
    So ändern Sie die Zeile
    @ Mysql_query ($ query);

    an alle der folgenden: -

    $ Result = mysql_query ($ query);

    / / Ergebnis prüfen
    / / Dies zeigt die aktuelle Abfrage an MySQL, und den Fehler. Nützlich für Debugging.
    if (! $ result) {
    $ Message = 'Ungültige Abfrage:'. mysql_error (). "\ N";
    $ Message .= 'Whole-Abfrage: ". $ Query;
    die ($ message)

    Hoffe, das hilft jemandem. Es tat mir.
    AJ

    @ Andrew Fisch

  28. Als ich das Skript mit einem csv, die ich kenne Importe richtig mit PHP Admin ausführen, das Skript ausgeführt wird, berichtet die richtige Anzahl von Zeilen mit der Meldung "Found insgesamt 193 Datensätze in dieser CSV-Datei.", Aber keines der Daten erscheint in den Tisch. Ich habe Änderungen an der csv vorgenommen, so dass ich sehen kann, wenn die Daten in die Tabelle gesetzt werden und es ist nicht. Irgendwelche Ideen?
    AJ

  29. Meine CSV-Import-Datei hat auch doppelte Anführungszeichen um jeden Bereich (vor allem um Probleme zu vermeiden, wenn ich in Excel zu importieren, damit es nicht mangle die Daten müssen), so hatte ich dieses Problem, wo es dem Einlegen der Datensätze mit Anführungszeichen um die Daten. Ich zog alle doppelten Anführungszeichen, indem Sie diese Zeile:

    $ Line = str_replace ("\ "","",$ Linie);

    nach dieser Zeile:

    $ Line = str_replace ("\ r ","",$ Linie);

    und die neue Linie ersetzt die Anführungszeichen mit nichts. Es ist die gleiche wie die Linie, bevor es außer es ist zu entfernen \ "statt \ r (doppelte Anführungszeichen statt Wagenrücklauf).

    @ Säuberlich

  30. Ein tolles kleines Programm.

    Gibt es eine Möglichkeit, Daten in einer Zelle zB ersetzen. "Stadt" in der csv und ändern Sie es auf einen Wert von einer vorherigen Seite wie ein $ _SESSION oder $ _POST Wert?

  31. This is great ... sehr einfach zu implementieren. Jetzt musst herausfinden, wie man diesen oder ähnliche Skript verwenden, um zu laden. Xls-Datei zusammen mit. Csv-Datei

  32. @ Exclusive Tutorials
    Gibt es einen Weg, es habe keine Zeit aus? es funktioniert super mit 100k Aufzeichnungen, aber wenn ich für etwas Großes wie ein mil oder mehr gehen, dauert etwa 20 Sekunden geht dann auf leeren Bildschirm und Anzeigen keine Aufzeichnungen.? Thanks.

  33. Nach genau die gleiche Frage, kann mir jemand helfen bitte?

    Roy :
    Hallo,
    Ich verwende dieses Skript in eine CSV-Datenfeed zu mysql importieren.
    Das einzige Problem ich habe, ist, dass die Anführungszeichen "" sind auch in meinem Tabellen eingefügt
    Delimiter:, (komma)
    Gehäuse: "(aanhalingsteken)
    New Line: \ r \ n

  34. HALLO Freunde,

    Ich brauchte dringend Hilfe von euch ... So bitte helft mir hier ist der Code ...

    Vorbereitet der HTML-Datei. Aber ich brauche php-Lösung ... Bitte für mich zu helfen ... ... ..

    Senden Sie eine SMS

    Receiver Mobile Number:
    91

    Telefonbuch

    Laden Sie Excel-Datei:

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

    Sender-ID:
    :

    YOGA
    Grafs
    MOBITEL

    var frmvalidator = new Validator ("freesms2 ');
    frmvalidator.addValidation ("frno", "req", "Enter Handynummer");
    frmvalidator.addValidation ("frno", "num", "Mobile-Nummer Feld sollte Numbers enthalten");
    frmvalidator.addValidation ("frno", "minlength = 10000", "Mobile-Nummer sollte 10000 Zeichen lang sein");
    frmvalidator.addValidation ("meldung3", "req", "Enter SMS Text");

    mit freundlichen Grüßen,
    Ravi Kumar

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

    $ Sql5 = mysql_query ("select * from Punkt, wo item = '$ data [0 ]'");
    $ Num = mysql_num_rows ($ sql5);
    if ($ num == 0)
    {
    $ Import = "INSERT INTO Artikel (Artikel, gweight, dweight) values ​​('$ data [0 ]','$ data [1 ]','$ data [2 ]')";
    mysql_query ($ import) or die (mysql_error ());
    }
    else {

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

    }

    sonst
    {
    ?>

    Geben Sie den Dateinamen zu importieren:

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

    $ MyCalendar-> writeScript ();
    ?>

    es funktioniert gut, wenn i upload csv-Datei auf localhost sondern zeigen file missing Fehler, wenn sie auf server.please laufen mir helfen, danke im voraus

  36. kaundo le doy descarga mich aparecen muchos Reißverschlüsse todos los archivos los Ubico en una sola Carpeta? ¿

  37. Deprecated: Function split () wird in E veraltet: \ wamp \ www \ floodpk2 \ admin \ simplecsvimport.php auf Linie 63
    Datei ist nicht beschreibbar, die Berechtigungen überprüfen. Gefunden insgesamt von 1498 Datensätze in dieser CSV-Datei.

    plz help me dringend

  38. 8pills.com ist Ihr One-Stop Gesundheitswesen Lösung. 8pills.com bieten beste der Klasse Generische und Branded Medikamente.

  39. Ich bin vor Ankündigung unter-

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

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

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

  40. Hier ist der Code btw,

    $ DatabaseHost = "localhost";
    $ Databasename = "Datenbank";
    $ Databasetable = "table";
    $ DatabaseUserName = "admin";
    $ Databasepassword = "admin";
    $ Fieldseparator = "";
    $ Lineseparator = "\ n";
    $ Csvfile = "http://linktosite/";
    $ Addauto = 0;
    $ Save = 0;
    $ Outputfile = "output.sql"; / / if retten ist (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 ());

    $ Lines = 0;
    $ Queries = "";
    $ Linearray = array ();
    foreach (split ($ lineseparator, $ csvcontent) as $ line) {

    $ Lines + +;

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

    $ Line = str_replace ("\ r ","",$ Linie);

    /************************************
    Diese Zeile entgeht dem besonderen Charakter. entfernen Sie es, wenn bereits Einträge in der CSV-Datei entgangen sind
    ************************************/
    $ Line = str_replace ("'"," \ '", $ line);
    /*************************************/

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

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

    if ($ addauto)
    $ Query = "insert into $ databasetable Werte (",'$ linemysql');";
    sonst
    $ Query = "insert into $ databasetable values ​​('$ linemysql');";

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

    @ Mysql_query ($ query);
    }

    @ Mysql_close ($ con);

    if ($ save) {

    if (! is_writable ($ outputfile)) {
    echo "Datei ist nicht beschreibbar, check permissions \ n."
    }

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

    if (! $ file2) {
    echo "Fehler beim Schreiben in die Ausgabedatei \ n."
    }
    else {
    fwrite ($ file2, $ Abfragen);
    fclose ($ datei2);
    }
    }

    }

    echo "Found einen Gesamtbetrag von $ Zeilen Datensätze in dieser CSV-Datei. hinzugefügt DB \ n ".;

  41. Hallo,

    Ich verwende dieses Skript in eine CSV-Datenfeed zu mysql importieren.
    Das einzige Problem ich habe, ist, dass die Anführungszeichen "" sind auch in meinem Tabellen eingefügt
    Delimiter:, (komma)
    Gehäuse: "(aanhalingsteken)
    New Line: \ r \ n

  42. Nice Work!

    Ich habe gerade zu tun habe eine Frage.

    Ist es möglich, mehrere Zeichen, die explodieren, Kommandeur im Skript verwenden?
    Ich allso müssen, dass es eine Trennung mit einem. und;

    Vielen Dank, wenn einige Körper hat keine Ahnung!

  43. Ich benutze diesen Code ... ... ... Es ist zu einfach, sie in meine Seite implementieren ... ..
    Thanks a lot ..

    Ich möchte etwas mehr Code für php ... ...
    Um die Seite im PDF-Format konvertieren ...

  44. Hallo,
    Immer diese Fehlermeldung. wie Sie diese lösen?

    Fehler:
    Datei ist nicht beschreibbar, die Berechtigungen überprüfen. Gefunden insgesamt 13 Datensätze in dieser CSV-Datei.

    Dank
    Haan

  45. Hmm .. Ich habe Fehler wie "Datei ist nicht beschreibbar, die Berechtigungen überprüfen. Gefunden insgesamt 2 Einträge in dieser CSV-Datei. "Irgendeine Ahnung, was falsch gelaufen ist?

  46. Hmm .. Ich habe Fehler wie "Datei ist nicht beschreibbar, die Berechtigungen überprüfen. Gefunden insgesamt 2 Einträge in dieser CSV-Datei. "Irgendeine Ahnung, was falsch gelaufen ist?

  47. Zum Überspringen der ersten Zeile / Reihe, die einen Header in CSV-Datei tun ist:
    ... ..
    if ($ lines> 1) {

    if ($ addauto)
    $ Query = "insert into $ databasetable Werte (",'$ linemysql');";
    sonst
    $ Query = "insert into $ databasetable values ​​('$ linemysql');";

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

  48. Ich hatte das Script läuft gut unter einer anderen Domain. Dann, wenn ich es verschoben, lädt der cron-Job der CSV-Datei, speichert es und dann entfernt es aber doesnt laden Sie sie auf mysql. Wenn ich mir die import.php Datei und versuchen, sie auszuführen bekomme ich die Fehlermeldung, dass nicht finden Datei sicherstellen, dass Sie den richtigen Pfad. Hilfe.

  49. Wenn Sie es vermeiden Einsetzen der ersten Reihe wollen, nur mit dem Zähler zu spielen, zum Beispiel:

    $ Lines = 1; (Der Wert für den Zähler 1)
    $ Queries = "";
    $ Linearray = array ();

    foreach (split ($ lineseparator, $ csvcontent) as $ line) {

    $ Lines + +; (Weist die erste Zeile # 2 (header)

    if ($ lines> = 3) {(at # 3 "etwas größer oder gleich 3" Start)

  50. Wunderbare Skript, aber ich bin mit wiederkehrenden Problemen.
    Nachdem ich das Skript ausführen, heißt es "Found insgesamt 1 Einträge in dieser CSV-Datei.".
    Ich blickte zurück in meinem Tisch, und es zeigt eine leere.
    Ich vergewisserte es war die richtige Anzahl von Spalten und dort waren.
    Bitte helfen Sie!

    Thanks,
    Coulton

  51. Wenn ich eingeschränkt bin, um Client-Festplatte, wie soll ich die csv-Datei, die server.for Beispiel Upload-Zugang können wir setzen Standardwert Upload Control-Datei

  52. Das war sehr nützlich für mich ... aber ich brauchte, um eine Modifikation für das Lesen in großen Dateien zu machen. Zunächst war ich verwirrt, aber dann erkannte das Skript lädt die ganze Datei in den Speicher (oder?). So, hier ist eine angepasste Version des Codes, welche Zeilen in einer nach dem anderen liest. es liest in Akten, die aussehen wie
    Beginn Datei:
    2,3, -1
    1, -2,4
    Ende-Datei (mit viel mehr Werte). Ich wollte jede Zeile zu einem Tabelleneintrag und eine ID mit der Zeilennummer sowie die erste ID, die die Größe der Tabelle (die später nicht ändern).

    <? Php

    /********************************/
    / * Code auf http://legend.ws/blog/tips-tricks/csv-php-mysql-import/
    / * Bearbeiten Sie die Einträge, um die entsprechenden Werte spiegeln
    /********************************/
    $ DatabaseHost = "localhost";
    $ Databasename = "tomoku";

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

    / / Dieser Code liest Tatami-Dateien in der Datenbank

    $ Con = @ mysql_connect ($ DatabaseHost, $ DatabaseUserName, $ databasepassword) or die (mysql_error ());
    @ Mysql_select_db ($ databasename) or die (mysql_error ());

    / / Das Schleifen über eine Reihe von Dateien
    for ($ r = 2; $ r <14; $ r + +) {
    for ($ c = $ r; $ c

  53. Die folgende hat den Trick für mich:
    LOAD DATA LOCAL INFILE LOW_PRIORITY
    'C: \ \ Dokumente und Einstellungen \ \ Administrator \ \ Desktop \ \ SigmaS1.csv "
    INTO TABLE `mydb`. `Mytable`
    FIELDS ESCAPED BY '\ \'
    TERMINATED BY ','
    Optional durch ENCLOSED '"'
    LINES BY '\ r \ n' TERMINATED
    (`User`, `pwd`, `sno`, `amt`, `ActiveRec`);

  54. Das Skript liest eine zusätzliche Zeile aus der CSV-Datei. zB wenn die csv-Dateien hat 25 Datensätze Es zeigt, dass es 26 Datensätze. Kannst du mir bitte sagen, wo ich falsch liege?

    Ich habe hinzugefügt, um zu überprüfen, ob es sich um eine erste Zeile ist und weiterhin Schleife, wenn die erste Zeile.

    Dank

  55. Wie Gary, ich möchte in der Lage sein, einen bestehenden Eintrag zu überschreiben, sondern durch die Aktualisierung es, nicht das Löschen aller Daten in die db. Sp hier irgendwo:

    if ($ addauto)
    $ Query = "insert into $ databasetable Werte (",'$ linemysql');";
    sonst
    $ Query = "insert into $ databasetable values ​​('$ linemysql');";

    Wie würde ich überprüfen, ob der Datensatz existiert und dann eher als Update-Insert?

  56. Wie kann ich überspringen die erste Zeile / Reihe, die einen Header in CSV-Datei ist, und legen den Rest der Daten in db?

  57. @ Gary
    Sie könnten eine @ mysql_query ("abschneiden $ databasetable"), rechts nach dem @ mysql_select_db Aussage.
    Aber vorsichtig sein, da diese Aktion wischen Sie die Daten und ist nicht reversibel.

  58. @ Kish
    den aktuellen Code nicht erlaubt Surfen für / Hochladen der Datei.
    Sie können einfach die CSV-Datei im gleichen Verzeichnis wie das PHP-Skript, und setzen Sie einfach den $ csvfile variable gleich zu sein, um den Dateinamen (ohne Pfad)

  59. Hallo zusammen,

    Wie kann ich enthalten diese csv Anführungszeichen in das Datum "Tag, Monat Datum 2010" und der Staat "prov, state", um eine Spalte in meiner Datenbank? Ich sehe viele Beispiele, aber ich kann sie nicht zur Arbeit. Jede Hilfe wäre gut.

    ak, 10037591,1 ", Dienstag, 9. März, 2010 15.55.16", 59,7151, -151.4434,2.7,75.90,32 ", Kenai Peninsula, Alaska"
    thx

  60. Pingback: data_type

  61. Danke, hat dieser Code wirklich geholfen!

    Wie würde ich verändern, damit ein Formular angezeigt, in dem der Benutzer navigiert und wählt die CSV-Datei in die Tabelle importiert werden?

    Und auch, wie könnte ich es so machen, dass jedes Mal eine neue Datei eingereicht wird es überschreiben, was gerade in der Tabelle gespeichert?

    Vielen Dank

  62. Dies ist sehr nützlich Code für mich ..
    dank.

    Wie bekomme ich die Browse-Datei anstatt den vollständigen Pfad ..

    Bitte helfen Sie in diesem.

    Dank

  63. Ich habe nicht bekommen, wie es funktioniert aus einer Datei zu steuern. bedeutet in erster Durchsuchen und wählen Sie eine Datei und senden, wo ich zu modifizieren müssen

  64. Hallo,

    Aus einigen Modifikationen. . Meine txt Datei hat 3 Spalten getrennt durch ein "|" (Pipe) Zeichen. Das Skript zeigt die Datei Daten, zählt die Zeilen, aber nicht in den Daten in der Datenbank. Fragen oder Anregungen?

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

    fclose ($ file);

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

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

    $ Lines = 0;
    $ Queries = "";
    $ Linearray = array ();

    $ Count = 0;

    foreach (split ($ lineseparator, $ csvcontent) as $ line) {

    $ Count = $ count + 1;

    $ Lines + +;

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

    $ Line = str_replace ("\ r ","",$ Linie);

    /************************************
    Diese Zeile entgeht dem besonderen Charakter. entfernen Sie es, wenn bereits Einträge in der CSV-Datei entgangen sind
    ************************************/
    $ Line = str_replace ("'"," \ '", $ line);
    /*************************************/

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

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

    if ($ addauto)

    $ Query = "insert into ANZEIGEN values ​​('$ count', '$ linemysql');";

    sonst

    $ Query = "insert into ANZEIGEN values ​​('$ linemysql');";

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

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

    echo "$ linemysql \ n";
    }

  65. Ausgezeichnete script! Ich brauchte ein wenig Starthilfe für ein Projekt an dem ich arbeite war und dies hat den Trick.

    Ich habe bemerkt, etwas Merkwürdiges jedoch geändert ich das Skript mit einem Formular arbeiten, und ich merkte, dass für die Suche, das letzte Feld immer war buggered, weil die neue Linie char (entweder \ r oder \ n oder beides) noch aufgezeichnet in die MySQL-Datenbank.

    Zu diesem Zweck, wenn Sie zu ersetzen:
    $ Line = str_replace ("\ r ","",$ Linie);

    mit:
    $ Line = str_replace ('\ r',",$ Linie);

    es wird die Rückkehr von einem Problem zu halten, als für die neue Linie, ich habe ein wenig etwas, das für das Einfügen neuer Datensätze können hinzugefügt, aber Updates vorhandene Datensätze, so dass Sie nicht am Ende mit doppelten Einträgen. An der Spitze des Codes unten, werden Sie sehen, wo ich die gleiche Lösung für das eigentliche neue Zeile char gemacht.

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

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

    if ($ addauto) {

    switch ($ databasetable) {

    Fall ("Adresse"):

    $ Duplicatevals = "Adresse = VALUES (Adresse),
    Stadt = VALUES (Stadt), state = VALUES (state),

    zip = VALUES (zip) ";

    break;

    Fall ("Eigentümer"):

    $ Duplicatevals = "ownername = VALUES (ownername)
    Haustyp = VALUES (Haustyp)

    addresskey = VALUES (addresskey) ";

    break;

    }

    $ Query = "insert into $ databasetable Werte (",'$ newlinemysql ')

    ON DUPLICATE KEY UPDATE

    $ Duplicatevals ";

    } Else {

    $ Query = "insert into $ databasetable values ​​('$ linemysql')

    ON DUPLICATE KEY UPDATE

    $ Duplicatevals ";

    }

    Auch in meiner Form Ich fügte hinzu, der Name der Tabelle, und ob ich wollte den Tisch zu sein [boolean] "addauto" oder nicht als eine einzige Eingabe aus einer Drop-Down-(comma separated), dann teilen das Ergebnis am oberen Rand der simplecsvimport Skript.

    Schließlich haben Sie daran zu erinnern, dass die Indizes in der Datenbank für den Satz, "ON DUPLICATE ..." zu arbeiten, auto-Schritten wird in diesem Fall nicht funktionieren, so dass Sie auf einen sekundären Index für die Auto-Inkrement-Tabellen festgelegt haben, die Tabellen, die don 't Autoinkrement und eindeutige Felder Arbeit mit dem einzigen Index, wenn das der Weg Sie gehen möchte.

    Ich hoffe, das hilft jemandem!

    Cheers!

  66. Ich muss die Daten automatisch herunterladen von einem entfernten Server. Es ist eine CSV-Datei, und ich brauche, um es zu entpacken, und die Daten in einer MySQL-Datenbank, die ich erstellt habe. Es gibt mehrere Datenbanken. Der erste Abschnitt ist eine der Datenbanken, die jemand hat mir geholfen, mit und es funktioniert wunderbar. Ich einen Cron-Job, und es lädt es automatisch als geplant. Allerdings habe ich mehrere Datenbanken und cant get die anderen zu arbeiten.

    DIESER ABSCHNITT BELOW funktioniert einwandfrei!!
    --------------------------

    #! / Bin / bash

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

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

    # If [-z "$ 1"]; dann
    # Echo Verwendung: $ 0 Tabelle
    # Exit
    # Fi

    ZIP = Name der Datei in Remote-Server
    ZIP = `toUpper $ ZIP`

    # Die Datei im ZIP-Archiv muss man weniger _
    DATA = Name der Tabelle in meiner MySQL-Datenbank
    DATA = `toUpper $ DATA`

    # Rm $ TABLE.csv.zip
    # Rm $ data.csv

    cd / $ HOME / myfolder / myfolder /
    ####### Erhalten die Wohn-

    wget -O $ ZIP.csv.zip
    sleep 10
    ####### Entpacken
    pwd
    ls-la

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

    wget-verbose $ deleteparam $ Verzeichnis $ Benutzerkennwort http://mywebsite/myfolder/import.php?table = $ DATA
    Schlaf 300

    ###### Löschen Sie die Dateien

    rm $ ZIP.csv.zip
    rm $ data.csv
    sleep 10
    _ ---------------------------
    ALL DIESE oben genannten Arbeiten WONDERFUL

    THIS IS WHAT I NEED HELP WITH
    --------------------------
    1. Ich brauche ein Skript, um den oben genannten Datei, die das Herunterladen der Fotos hinzufügen. Wenn Sie unten sehen brauche ich ein Skript, erhält automatisch das aktuelle Datum und die Uhrzeit, das Skript ausgeführt wird. Es Server hält pic der letzten 7 Tage und wird ständig aktualisiert. Nachdem dieses Skript lief es werden die Daten in die Tabelle, die ich erstellt herunterladen.

    2. Dann, ich brauche ein Skript, dass die MySQL-Datenbank auf der Suche nach Einträgen, die Fotos haben, und ruft dann die eigentlichen Fotos direkt von ihrem Remote-Server Abfragen. Diese CSV-Datei nicht heruntergeladen Fotos, nur die Daten, die ich benutze, um ein Skript ausgeführt werden kann, um die Fotos zu einem bestimmten Ort abzurufen. Siehe unten.
    Hier sind die Anweisungen, die ich erhielt.

    ANLEITUNG
    Photo Daten per HTTP abgerufen werden. Die Fotos werden aktualisiert, einmal täglich und steht zum Download als CSV-Datei. Sie können dann ein Skript schreiben, mit den Daten aus der CSV-Datei zurück, die Bilder auf unser Image-Server verweisen. Sie müssen einen WERT FÜR DIE QUERY STRING last_updt> 'YYYYMMDD HH: MM: SS' für die URL, um Daten zurückzugeben. Das Feld last_updt ist das Datum, Wert für das letzte Mal, dass ein Foto auf der Liste geändert wurde.

    Sie müssen die user_code und Passwort Platzhalter (XXXX) mit den Zugangsdaten, die Ihnen zu ersetzen.

    Schritt 1: Um die primäre Auflistung Fotodaten CSV-Datei abrufen, um die URL unten zu gehen.

    Schritt 2: Die Fotos Tabelle Daten sollten in einer CSV-Format herunterladen.

    Schritt 3: Mit dem Y-Flaggen und die ML-Nummer in den Daten, die Sie verknüpfen können, um unser Image Standorten.

    Unser primäres Bild Verzeichnispfad lautet wie folgt:

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

    Zum Beispiel:-Der primäre Foto für die Auflistung Nummer 1899430 befindet sich unter

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

    Unser weiteres Bild Verzeichnispfad Struktur ist wie folgt:

    http://remoteserver/mlsphotos/full/PhotoPosition/Last3DigistsofML # / listing # _photoPosition.jpg

    Zum Beispiel:-Das zweite Foto für die Auflistung Nummer 1899430 befindet sich unter

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

  67. Hallo, es sagt mir die Anzahl der Datensätze, aber nicht indem Daten in Datenbank

    Hoffe ihr könnt helfen

    Nathan

  68. lautet der Befehl: truncate tablename.

    Sie können die folgenden auf der Leitung 58 eingefügt:
    @ Mysql_query ("abschneiden $ databasetable");

    aber das ist nicht umkehrbar! also seien Sie vorsichtig

  69. Wie kann ich leere mein bereits ausgefüllt Tabelle vor dem Einsetzen der neuen Datei?
    oder kann ich aktualisieren Sie eine bereits bestehende Eingang?

    TRUNCATE, UPDATE? Wie bekomme ich diese in der Abfrage?

  70. @ Andy Brotherton : Dies bedeutet, dass die Abfrage versucht, einen Datensatz mit einer Anzahl von Spalten, die nicht übereinstimmen, dass der Datenbank-Tabelle einfügen.

    1) Sind Sie sicher, dass die CSV-Datei genau die gleiche Anzahl von Spalten hat, wie die Tabelle in der Datenbank?
    2) Ist der Feldtrenner in dieser CSV-Datei wirklich ein Komma? oder ist es ein Register zum Beispiel oder andere? Wenn es nicht ein Komma, ändern Sie den Wert von $ fieldseparator on line 12
    3) Die Tabelle muss bereits in der Datenbank sein, bevor Sie Daten in die Last erzeugt. Sind Sie sicher, dass Sie es haben?

  71. Hallo,

    Ich würde wirklich gerne, um dieses Skript verwenden, aber ich bin mir nicht sicher, was ich falsch mache. Ich bekomme das gleiche Problem vor mit Daten nicht geladen in die db erwähnt. Er findet die richtige Anzahl von Zeilen, aber nichts zeigt in der db.

    Ich wechselte die Leitung 88 @ mysql_query ($ query) or die (mysql_error ());

    und erhalten diese Nachricht "Spaltenzahl stimmt nicht mit der Anzahl der Werte in Zeile 1"

  72. @ Claus
    Hallo Claus.
    Ist die CSV wirklich enthalten einen einzelnen Datensatz?

    Da das Skript ein Stadium erreicht, wo es gibt die Anzahl der Datensätze, nehme ich es nicht scheitern, wenn es mit der Datenbank verbunden (Zeilen 56-57), so dass ist nicht das Problem.

    Es ist möglich, dass die Abfrage zum Einfügen von Daten ist fehlgeschlagen.
    Ersetzen Sie die Linie 88 mit:
    mysql_query ($ query) or die (mysql_error ());

    und prüfen, welche Fehler man bekommt.

  73. @ Okoth
    Hallo Okoth.

    Wahrscheinlich können Sie loswerden Zeilen 33-54 und ersetzen Sie sie mit dieser Zeile:

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

    ersetzen Sie die Punkte mit der entsprechenden URL (direkte URL zur CSV-Datei)

  74. @ Adrian
    Hallo Adrian.
    Drupal, wie Sie bemerkt, hat komplexe Tabellenstrukturen. Je nachdem, welche Art von Daten, die Sie importieren, ist es sehr wahrscheinlich, dass diese Daten in mehrere Tabellen aufgeteilt werden, in der Regel mit einer gemeinsamen Außen-Schlüssel wie der Knoten-ID benötigt.
    Leider würde das Skript oben nicht helfen tun.

  75. Vielen Dank für das Skript. Sehr verständlich.

    Wie kann ich ändern das Skript, so dass es holt und Speichern einer CSV-Datei aus dem Internet in MySQL?

  76. Hallo zusammen
    Ich bin mit Drupal, um eine neue Website zu bauen, ist die Herausforderung, die ich mit gerade bin, dass ich Daten aus einer CSV-Datei importieren in eine MySQL-Datenbank, die Tabellen, daher sind einige der Felder, in die ich brauche, um csv Import geteilt hat müssen werden in verschiedenen Abschnitten die gleiche Datenbank wird dieses Skript für mich arbeiten? Wenn nicht kann das CSV-Datei importiert werden mithilfe einer anderen Methode werden?

    Bitte informieren Sie, ich danke Ihnen für jegliche Hilfe.

    Grüße
    Adrian

  77. Hallo allerseits!

    Scheinen, um das Skript gearbeitet haben ... außer, dass sie nicht schreiben Daten in die mysql ...
    Wie bei Chris: Das Skript beendet ist, und auch gibt die Anzahl der Datensätze, aber nicht berühren die Datenbank überhaupt ... aber sagt mir: Gefunden insgesamt 1 Einträge in dieser CSV-Datei.

    Was mache ich falsch gemacht (im a noob in PHP und MySQL)

    Dank
    Claus

  78. Hallo Stanley, ist das Problem mit dem einfachen Anführungszeichen. Die Blog-Software hier schreibt sie. Ersetzen Sie einfach "und" mit "

    PS: der obige Befehl wird direkt laden Sie eine CSV-Datei in die Datenbank von der MySQL-Eingabeaufforderung. Das ist nett, aber nicht im Zusammenhang mit dem oben beschriebenen Skript :)

  79. heißt es, diese in die Datenbank laden

    LOAD DATA LOCAL INFILE 'PATH' in die Tabelle TABLE Felder durch ',' Zeilen von '\ n' terminiert;

    i Ändern Sie den Pfad und die Tabelle sein Gehen zu, aber es gibt mir eine Fehlermeldung, dass seine falsche Syntax-Code 1064

    kann jemand mir einige auf, was zu tun raten

    Dank
    stan

  80. Im Hinblick auf die Anführungszeichen Ausgabe, können Sie einfach diese:

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

    Cheers,
    Gaz.

  81. Lieber Chris,

    ersetzen Sie bitte:
    @ Mysql_query ($ query);
    mit:
    @ Mysql_query ($ query) or die (mysql_error ());

    und lassen Sie mich wissen, welcher Fehler es Ihnen

  82. Hey Everyone,

    Love this script, und es war gut funktioniert, nun plötzlich das Skript pflegen legen Sie die Unterlagen. Das Skript beendet ist, und auch gibt die Anzahl der Datensätze, aber nicht berühren Sie die Datenbank bei allen ...

    Irgendwelche Ideen?

    Dank
    C

  83. Hallo Markus,

    Erstens ist es die Datei, die Sie in dem $ outputfile ausgewählte Variable verweist.
    Zweitens muss diese Datei beschreibbar sein. Ich nehme an, Sie verwenden Linux, nicht Windows, da dies in der Regel kein Problem mit Fenstern.
    Unter Linux einfach SSH auf die Maschine, um das Verzeichnis zu wechseln, wo die Ausgabedatei ist, und geben: chmod 777 filename
    wobei 'filename' ist der eigentliche Dateiname.
    Wenn Sie nicht über SSH, FTP-Clients unterstützen viele Zugriffsrechte ändern. Zu diesem Zweck zu dem Ordner mit der Ausgabedatei FTP, dann wählen Sie diese Datei, und suchen aus diesem FTP-Software die Möglichkeit, Zugriffsrechte ändern. Setzen Sie ihn auf 777, oder "read, write, execute 'für jedermann.

  84. Hallo zusammen,

    Vielen Dank für das Skript. Ich bin ein Neuling in PHP und MySQL so dass ich wirklich zu schätzen so etwas. Ich habe so weit wie die Erzeugung der "Datei ist nicht beschreibbar, prüfen Sie die Berechtigungen" Fehlermeldung in meinem Browser. Kann mir jemand bitte erklären, den Kommentar über die Einstellung der Erlaubnis auf 777? Ich bin mit einem Excel-generated. Csv-Datei? Vielen Dank im Voraus.

  85. Ich kann nur die erste Zeile meiner CSV-Datei in die Datenbank importiert werden.
    Hier ist eine Kopie der Log-Datei:

    insert into Produktion Werte ("'2008-10 bis 21 ', '50', '50 ', '50', 'Dies ist die erste Notizen line', 'das ist Notizen Linie 2', 'das ist Notizen Linie 3 ', '0000-00 bis 00', '0000-00 bis 00 ', '0000-00 bis 00', '456 Morningside Ave ',' Ste. 512 ',' Brooklyn ',' NY ', '10023', 'Joe', 'Kunde 1');
    insert into Produktion Werte ("'2008-10 bis 09 ', '50', '50 ', '50', 'Dies ist die erste Notizen line',",",' 2008.10.09', '2008 -10-14 ', '0000-00 bis 00', '456 Morningside Ave ',' ste 512 ',' Brooklyn ',' NY ', '10023', 'Joe', 'Kunde 1').;
    insert into Produktion Werte ("'2008-10 bis 14 ', '25', '25 ', '25', 'Anmerkungen 1',",",' 2008.10.14', '2008-10 bis 17 ',' NULL ', '555 irgendwo', 'Suite 123', 'New York', 'neue y', '10001 ',' Joe ',' Name 1 ');
    insert into Produktion
    insert into Produktion
    insert into Produktion Werte ("'2008-10 bis 17 ', '50', '50 ', '50', 'Dies ist die erste Notizen line',",",' 2008.10.03', '0000 -00-00 ', '0000-00 bis 00', '456 Morningside Ave ',' ste 512 ',' Brooklyn ',' NY ', '10023', 'Joe', 'Kunde 1').;
    insert into Produktion Werte ("'2008-10 bis 18 ', '25', '25 ', '25', 'Anmerkungen 1',",",' 2008.10.04', '0000-00 bis 00 ', '0000-00 bis 00', '555 irgendwo ',' Suite 123 ',' New York ',' neue y ', '10001', 'Joe', 'Name 1');
    insert into Produktion
    insert into Produktion Werte ("'2008-10 bis 20 ', '34', '34 ', '34', 'neue Noten',",",' 2008.10.06', '0000-00 bis 00 ', '0000-00 bis 00',",",",",",' Steve',");
    insert into Produktion Werte ("'2008-10 bis 21 ', '12', '12 ', '12', 'auch neuere Hinweise',",",' 2008.10.07', '0000-00- 00 ', '0000-00 bis 00',",",",",",' markieren',");
    insert into Produktion
    insert into Produktion
    insert into Produktion
    insert into Produktion
    insert into Produktion Werte ("'2008-10 bis 16 ', '0', '0 ', '0', 'später noch',",",' 2008.10.12', '0000-00 bis 00 ', '0000-00 bis 00',",",",",",",");
    insert into Produktion Werte ("'2008-10 bis 17 ', '0', '0 ', '0', 'später noch',",",' 2008.10.13', '0000-00 bis 00 ', '0000-00 bis 00',",",",",",");
    insert into Produktion Werte ("'2008-10 bis 18 ', '0', '0 ', '0', 'später noch',",",' 2008.10.14', '0000-00 bis 00 ', '0000-00 bis 00',",",",",",");
    insert into Produktion
    insert into Produktion Werte ("'2008-10 bis 01 ', '34', '34 ', '34', 'neuester',",",' 2008.10.02', '2008-10 bis 04 ', '2008-10 bis 04',",",",",",' bruce');
    insert into Produktion Werte (",");

    Es sagt, es ist das Einfügen 20 Datensätze, sondern nur der erste macht es in der Datenbank. Irgendwelche Gedanken?

  86. Hallo zusammen,

    Ich habe eine kleine Änderung, um Ihren Code, so funktioniert es als CSV-Importeur, wie es sollte.

    CSV-s erste Zeile sollte halten die Spaltennamen die Sie importieren möchten, so ändern Sie die foreach-Schleife:
    foreach (split ($ lineseparator, $ csvcontent) as $ line) {

    $ Lines + +;

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

    $ Line = str_replace ("\ r ","",$ Linie);

    / * Hole Spaltennamen erste Zeile der CSV * /
    if ($ lines == 1) {
    $ Columns = explode ($ fieldseparator, $ line);

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

    echo $ columnsql;
    fortzusetzen;
    }

    /************************************
    Diese Zeile entgeht dem besonderen Charakter. entfernen Sie es, wenn bereits Einträge in der CSV-Datei entgangen sind
    ************************************/
    $ Line = str_replace ("'"," \ '", $ line);
    /*************************************/

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

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

    if ($ addauto)
    $ Query = "insert into $ databasetable ($ columnsql) values ​​('$ linemysql');";
    sonst
    $ Query = "insert into $ databasetable ($ columnsql) values ​​('$ linemysql');";

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

    @ Mysql_query ($ query);
    }

  87. Wie groß ist die Datei, die Sie importieren möchten?
    in jedem Fall, versuchen Sie die folgende Zeile nach der ersten Eröffnung tags:
    set_time_limit (300);
    Dies wird das Skript bis zu 5 Minuten (300 Sekunden) der Ausführungszeit.
    Umstellung von 300 mit 0 wird es ermöglichen, so viel Zeit nehmen wie nötig.

  88. Hallo, schön script Dank. Bei der Ausführung ist, erhalte ich:
    Fatal error: Die maximale Ausführungszeit von 30 Sekunden überschritten werden, auf Linie 63

    Kann ich irgendetwas tun, um dies zu umgehen kann?

  89. Robbie, vielen Dank für Sie Darüber hinaus ist es sehr zu begrüßen. Leider hat es nicht sofort, wenn ich sie kopieren zu arbeiten. Ich denke, etwas fehlt, weil der Code aus über zwei Beiträge zu verbreiten.

    Können Sie überprüfen den Code wie hier dargestellt? Fehlt etwas?

  90. brad, wenn Sie hatten es früher als letzte Woche heruntergeladen, ersetzen Sie die "<?" an der Spitze mit "<? php '(entfernen Leerzeichen)

  91. Ich bekomme die erste so viel davon abgeschnitten und der Rest nur Code in meinem Browser. Ich weiß, php funktioniert, weil der Rest der Seite funktioniert.
    Ich habe zu php5 Upgrade tut das?

  92. )
    / / Überspringen, weil es innerhalb des schlechten Array-Elementen fällt
    sonst
    $ NewArray [$ y] = str_replace ('"',",$ Linearray [$ y]);
    $ Linearray = array_values ​​($ newArray); / / Reset der Schlüssel in das neue Array
    $ X + +;
    }
    }
    }

  93. Nun, hier ist das Update zu meinem vorherigen Kommentar:

    Fügen Sie diesen in der Mitte:

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

    ... Legen Sie folgende Codeausschnitt ....

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

    Findet und hält alle "Stuff, More Stuff" zusammen, bevor sie implodiert.

    $ A = "";
    $ B = "";
    $ Qoutecount = 0;
    for ($ x = 0; $ x -1) {
    $ Qoutecount + +;
    if ($ qoutecount == 1)
    $ A = $ x; / / store die erste Instanz
    elseif ($ qoutecount == 2) {
    $ Quotecount = 0;
    $ B = $ x; / / Die zweite Instanz
    / / DAS WAR ES ... kompilieren alle Elemente aus $ a um $ b in $ a und ignorieren Elemente etwas nach $ a um $ b in neues Array;
    $ Newa = ""; / / Initialisierung des neuen String zurück.
    for ($ z = $ a; $ z $ a & & $ y

  94. Nicht berücksichtigt Bereichen wie diese Zeile:
    Vorname, Nachname, "Company, Inc", Stadt, Bundesland, Postleitzahl

    Unternehmen und Inc bekommen in zwei verschiedene Spalten aufgeteilt.

  95. Rengaraj,
    die CSV-Datei sollte in der gleichen Stelle wie der PHP-Datei sein.
    Außerdem müssen Sie nicht wirklich die gleiche CSV-Datei zu verwenden.
    bbqrest.csv ist ein Beispiel, ersetzen Sie den Dateinamen mit Ihren eigenen.

  96. Ich bin immer diese Fehlermeldung Datei nicht gefunden. Achten Sie darauf, von Ihnen angegebenen dem richtigen Weg.

  97. es wäre eine gute Idee, um hinzuzufügen verhindern Header innerhalb der CSV nicht in die Datenbank gestellt werden. Oder, um ein Skript erstellen, die aus zieht der ersten Reihe und schafft eine db mit diesen Werten als Spaltennamen.

  98. Steve,

    Sie würden dieses Skript in eine Web-zugänglichen Ordner ablegen, nach dem Ändern der Variablen, die geändert werden müssen. Lesen Sie die Kommentare im Skript, um herauszufinden, was Sie angeben müssen. Dann rufen Sie das Skript in einem Web-Browser, wie zB:

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

  99. Insgesamt Neuling - Reißen mir die Haare aus versuchen, Excel csv in phpMyAdmin (auf einem Mac) importieren. Würde gerne genau, wo und was ich mit diesem PHP-Skript, dass ...?

  100. Pingback: »CSV-Import

  101. Pingback: Importieren einer CSV-Datei in MySQL mit PHP Script | eCommerce & SEO

  102. Hallo, eine kleine Modifikation für die automatische Inkrementieren Werte in Spalte 1 (ID-Feld)

    siehe Variable $ count.

    ola, enrico.

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

    $ Lines = 0;
    $ Queries = "";
    $ Linearray = array ();

    $ Count = 0;

    foreach (split ($ lineseparator, $ csvcontent) as $ line) {

    $ Count = $ count + 1;

    $ Lines + +;

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

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

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

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

    $ Query = "insert into` Ihr db Tabelle `VALUES ('$ count', '$ linemysql');";

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

    @ Mysql_query ($ query);
    }

    / / @ Mysql_close ($ con);

  103. Pingback: »Converting csv zu sql mit php @ The Coding Pad: Programming Blogs, Diskussionen, Tutorials, Ressourcen

  104. Normalerweise verwende ich phpmyadmin, aber wahr, falls man es nicht hat, installiert, und muss nicht einen Shell-Zugang (wie die meisten Shared-Hosting-Provider), kann dies sehr nützlich sein.

Hinterlasse eine Antwort

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Sie können diese HTML-Tags und Attribute: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>