Import von CSV in MySQL

Franz A.

Angesehenes Mitglied
Ich musste Daten von Excel in eine MySQL-Datenbank importieren. (VB kann ich zu wenig)

Ich habe die Daten zuerst ins CSV-Format exportiert und dann diese Zeilenweise ausgelesen und in die DB geschrieben.

Gibt es eine elegantere Lösung? Direktimport mit Hilfe von phpMyAdmin? Habe nichts gefunden und es musste schnell gehen.
 
Also ich mache es immer so. Zuerst exportiere ich die DB daten damit ich die Stuktur und den Datenaufbau habe mit PHPmyAdmin dies gibt mir bereits den kompleten Insert / Create befehl.
Nun werden alle daten die ich änderen will in die exportierte DB eingefült. Nun gibt's zwei möglichkeiten. PHPmyAdmin lässt das importieren einer datei ja zu entweder CSV,XHTML oder TXT.
Du kannst aber auch den Ganzen datensatz per SQL Befehl einfüllen (Copy + Paste)
 
Wie rogerbo schon sagte: phpMyAdmin ist sehr mächtig, auch in Sachen Import / Export.
smile.gif
 
Wenn Du eine bestehende Tabelle mit Records anreichern willst, die Du in einer CSV Datei hast, dann klickst Du zuerst in der linken Navigation auf die Tabelle. Danach solltest Du (im Register Struktur) zu unterst den Link "Textdatei in Tabelle einfügen" haben. Es kommt aber natürlich darauf an, welche Version Du von PHPmyAdmin hast.
 
Diesen Link gibts bei mir nicht. Beim Reiter Struktur ist zuunterst das ganze mit SQL - Eingabe. Die Version ist vermutlich 2.6.1.

Na ja. Ich heb es anderst gelöst und ging eigendlich auch ganz schnell.

Danke für die Hilfe!
 
Hi,

Also ich musste auch mal so etwas machen. Dabei war aber wichtig, dass man immer eine komplette CSV-DB (Export aus MS-Access) auf den Server laden kann, und so gleich die ganze MySQL-DB aktualisiert.
Ich hab dann einfach mit PHP Zeile für Zeile aus der CSV ausgelesen, per explode() in die einzelnen Felder aufgeteilt und dann noch per mysql_query() in die richtige DB geschrieben. Ich meine, dass der Aufwand nicht allzu gross ist, es geht relativ schnell.

Wenn man die CSV-DB allerdings nicht ständig aktualisieren muss, würde ich natürlich auch phpMyAdmin nehmen
wink.gif
...

Greats,

S.B
 
versuch das mal so

CODE $db = file("datenbank");
foreach($db as $line){
if(!isset($line)) continue;
list($de, $en) = explode('|', $line);
mysql_query("insert into `woerterbuch` (`de`, `en`) values ('".$de."', '".$en."')")
or die(mysql_error());
}



habe das selbst gestern erst gefunden und hatte keine zeit zu gucken ob das geht
 
Es gab mal ein online tool, wo ich die csv Datei einlesen konnte und mir wurde dann der MySQL Befehl ausgespuckt. Ich find dieses jedoch nicht mehr. Kenn das jemand hier?
 
QUOTE (Josh @ Do 1.9.2005, 12:41) Eben: phpMyAdmin.

Das hab ich nicht gemeint, denn erstens wird da meines Wissens nicht der SQL Code ausgegeben, sondern die Sache auch gleich in die DB gespeichert (was ich nicht will - ich will nur den Code). Zweitens funktioniert diese Funktion bei meiner MySQL Version leider nicht. "The used command is not allowed with this MySQL version"

Es war eine Webseite, wo ich die csv Datei einlesen konnte und die Seite hat mir dann den SQL Code ausgespuckt.
 
So ein Tool täte mich auch dringends brennend interessieren.
Habe das gleiche Proble. Phpmyadmin will meine Textdatei nicht importieren.

Fehler:
The Used Command is not allowed with this MySql Version.

Zum Hintergrund:
Ich habe eine kleine datenbank bei dem Freehoster Baseportal.
Dort konnte ich meine CSV Datei mit 200 Einträgen ohne Probleme hochladen.

Der Aufbau der Datei ist:
Eintrag1;Eintrag2;Eintrag3;Eintrag4;Eintrag5


Habe genau diese Datei nun auf den Hostern Lycos(paid Account) und 1&1 versucht hochzuladen.
Gleiche Struktur angelegt und den Link Textdatei einfügen angeklickt.

Das endet in dem Fehler:
The Used Command is not allowed with this MySql Version.

Danach habe ich von Hand mal einige Daten eingegeben und diese dann per Dump nur Daten exportiert.
Habe versucht dann diese Dump Textdatei (nur Daten) zu importieren.
The Used Command is not allowed with this MySql Version. Wie sollte es auch anders kommen *G*

Bei Lycos ist PHP die Version 4.3.9 und MySql die Version 4.0.18

Edit:
Nebenbei angemerkt. Ich habe heute das gleiche beim Provider Strato versucht. Da hat ein bekannter von mir einen Account.
Die setzten MySql in der Version 4.0.12 ein.
Gleiche DB Struktur wie beim Lycos und 1&1 Test Versuch angelegt.
Den Link Daten als textdatei einlesen angeklickt.

Und was soll ich sagen? Da klappt das.

Also entweder unterstützt MySql das ab einer bestimmten Version nicht mehr oder bei einigen Hostern stimmt die konfiguration nicht mehr.

Edit2:
Also soweit ich das bisher mitbekommen habe ist der Fehler des nicht importierens bei einigen Hostern kein Fehler sondern ein Feature. Lachhaft. Ich habe eine Datenbank kann diese aber nicht mit Inhalt füllen weil mein Hoster sagt das die Möglichkeit keine daten in die datenbank zu bekommen ein Feature ist. *ich bekomme schon Bauchschmerzen vom weglachen*

Also bleiben nur wenige Optionen.
1. Einen Hoster suchen der das kann
2. Sich Lokal eine MySql Datenbank installieren dann die Struktur inkl. der Daten dumpen und das dann installieren, weil das geht komischerweise.
3. Zb bei www.baseportal.com sich eine reine Datenbank anlegen wo das auch geht.

------------------------------------------------------------
Vielleicht sollte man mal eine Liste führen von Hostern wo der Upload von Daten in die Datenbank nicht geht?
1&1 : geht nicht
Lycos free Account : geht nicht
Lycos Zahl Account: geht nicht
Strato : geht
------------------------------------------------------------
 
Wieso sollte der Upload von Daten (CSV) zu 1&1 nicht funktionieren? Bei mir klappt es prima.
 
Zurück
Oben