Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Daten aus eine Textdatei in Datenabank schreiben

Frage Entwicklung PHP

Mitglied: Michi262

Michi262 (Level 1) - Jetzt verbinden

08.08.2008, aktualisiert 22.08.2008, 4013 Aufrufe, 9 Kommentare

Hallo

ich habe ein Problem und zwar wenn ich via dieser Funktion

01.
<?php 
02.
$lines = file('tribe.txt'); 
03.
if(!is_array($lines)) die("Datei konnte nicht geöffnet werden"); 
04.
foreach($lines as $line) { 
05.
       list($id, $name, $ally, $villages, $points, $rank) = explode(',', $line); 
06.
       $name = urldecode($name); 
07.
       $name = addslashes($name); 
08.
       safe_query("INSERT INTO tribe 
09.
					(id, name, ally, villages, points, rank) 
10.
					VALUES 
11.
					('$id', '$name', '$ally', '$villages', '$points', '$rank')"); 
12.
13.
?>
Daten aus einer Textdatei in eine Datenbank schreibe hört er nach ca. 4-5 MB auf (ich schätze Timeout).

Nun wollt eich fragen wie ich die Daten aus meinem ca. 10 MB großen Textfile in die Datenbank bekomme.

Ich hoffe ihr könnt mir helfen.

Gruß
Michi26206
Mitglied: Guenni
08.08.2008 um 22:30 Uhr
Hi,

das kann man mit LOAD DATA machen.

Du erstellst eine Kommando-Datei mit entsprechenden Anweisungen und speicherst diese

z.B. als import.sql im Binärverz. von MySQL. Ins gleiche Verzeichnis deine Textdatei.

Anschließend startest du MySQL mit dem Kommando mysql < import.sql.

Info über den Aufbau der Kommando-Datei findest

du hier --> http://dev.mysql.com/doc/refman/5.1/de/load-data.html

Gruß

Günni
Bitte warten ..
Mitglied: Michi262
08.08.2008 um 23:10 Uhr
ok. danke könntest du mir das evtl. schreiben? hab im moment net so viel Zeit. und außerdem werd ich aus der anleitung net schlau (NOOB xD naja net ganz aber fast). Wäre ein feiner zug von dir ;)

Gruß
Michi26206

PS: Oder könntest du mir das erklären. Wäre mir sogar lieber.
Bitte warten ..
Mitglied: Guenni
09.08.2008 um 15:10 Uhr
Hi,

Zur Anleitung:

Im Idealfall brauchst du nur die Anweisungen, die nicht in eckigen Klammern stehen,
das sind nur optionale Kommandos.

Idealfall wäre z.B.:

Es liegt eine Textdatei vor, die Anzahl Spalten der Tabelle und der Textdatei
stimmen überein. Weiterhin nehmen wir an, als Trennzeichen wird in der Textdatei
das Komma verwendet.

Dann erstellst du eine Textdatei, z.B. import, mit folg. Inhalt:

01.
load data 
02.
local infile 'dateiname.txt' 
03.
into table tabellenname 
04.
fields terminated by ',' 
05.
lines terminated by '\r\n'
Erste Zeile ist das Kommando, Daten einzulesen.
Zweite Zeile gibt den Dateinamen deiner Textdatei an und den Ort, wo
sie sich befindet. local bedeutet, dass deine Textdatei im Verzeichnis
der Datenbank abgelegt ist.
Dritte Zeile gibt den Tabellennamen an.
Vierte Zeile gibt an, durch welches Trennzeichen die Spalten in deiner
Textdatei getrennt sind.
Fünfte Zeile gibt das Zeilenende an.

Die Datei speicherst du ebenfalls im Verz. der Datenbank ab.

Zum Verzeichnis:

Irgendwo auf deinem Server/PC gibt es das Verzeichnis mysql. In diesem
werden für jede Datenbank neue Unterverzeichnisse angelegt.
Die beiden Dateien werden also entsprechend in eins dieser Unterverz.
abgespeichert.

Dann startest du auf Kommandozeilenebene mysql: mysql,

dann sieht das Eingabeprompt so aus: mysql>.

Dann wechselst du zur Datenbank mit dem Kommando \u Datenbankname.

Zum Schluß das Kommando, die Datei import auszuführen: \. import.

Dann sollte der Import ablaufen.

Gruß

Günni
Bitte warten ..
Mitglied: mschatz
12.08.2008 um 01:26 Uhr
Hallo Michi26206,

dein Problem kann 2 Urschen haben:

1.
Das Script erreicht den Timeout von 30 Sekunden, was aber nur auftreten kann wenn du das Script über einen Browser aufrufst. Via CLI ist nämlich kein Limit gesetzt. Lösung wäre hier den Timeout auszustellen.

01.
set_time_limit(0);
2.
Dein Script bricht nach dem Einlesen der ersten 8 MB aus dem Textfile ab. Das ist nämlich das voreingestellte Spreicherlimit in deinen PHP-Einstellungen, welches ein Script nicht überschreiten darf. Das kannst du aber normalerweise auch am Anfang des Scripts umstellen. Hier ist es zum Beispiel auf 32 MB gesetzt.

01.
ini_set(”memory_limit”,”32M”);
Beste Grüße,

Markus
Bitte warten ..
Mitglied: Michi262
14.08.2008 um 13:19 Uhr
ok. danke ich werd´s mal probiern
Bitte warten ..
Mitglied: Dani
19.08.2008 um 15:45 Uhr
Hi Michi,
na wie siehts aus? Lebt der DB Server noch und hat es so funktioniert.


Gruss,
Dani
Bitte warten ..
Mitglied: Michi262
21.08.2008 um 00:24 Uhr
Hi
sry. das ich so spät antworte. Funktioniert hat´s leider nicht. Server lebt aber noch.

noch was über MySQL-Befehl kann ich nichts machen mus es über den Browser aufrufen.

Hat wer nen Tipp für mich?

Gruß
Michi262
Bitte warten ..
Mitglied: Dani
21.08.2008 um 02:35 Uhr
Hi Michi,
in deinem Fall würde ich einfach eine SQL-File erstellen mit dem SQL-Befehlen. Am besten legst du die Textfile nach C:\ wie auch die folgende Batchdatei:
01.
@echo off 
02.
 
03.
for /f "tokens=1,2,3,4,5,6 delims=," %%a in ('type "c:\tribe.txt"') do echo INSERT INTO tribe (id, name, ally, villages, points, rank) VALUES ('%%a', '%%b', '%%c', '%%d', '%%e', '%%f'); >> "c:\sqldump.txt"
Sollte funktionieren...somit kannst du die Statements Blockweiße in phpMyAdmin kopieren und einfügen (lassen). Denn dein Hoster schriebt dir mit den 30 Sekunden auf jeden Fall ein Riegel vor!


Gruss,
Dani
Bitte warten ..
Mitglied: Michi262
22.08.2008 um 03:33 Uhr
ok danke. werde ich dann mal testen
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Dateierweiterungen in eine Textdatei schreiben
gelöst Frage von joe65Batch & Shell3 Kommentare

Hallo, ich hab nach längerer Zeit wieder mal ein Batch-Problem. Ich möchte alle Dateierweiterungen (txt, docx, jpg, etc.) die ...

Batch & Shell
Textdatei zeilenweise in Variable schreiben
gelöst Frage von goodbytesBatch & Shell20 Kommentare

Hallo, mit einer Batch möchte ich mehrere Laufwerke mappen, abhängig vom Usernamen. Klar könnte ich auch für jeden User ...

Batch & Shell
Erstellungsdatum vor jede Zeile einer Textdatei schreiben
gelöst Frage von freakonaleashBatch & Shell5 Kommentare

Hallo zusammen, ich habe einen Ordner mit ganz vielen Textdateien. Ich bräuchte eine Batch, die in jede Datei vor ...

Batch & Shell
BATCH: Daten aus Textdatei auslesen und in neue Textdatei separieren
gelöst Frage von Manuel1234Batch & Shell9 Kommentare

Hallo zusammen! Ich bin neu hier und freue mich auf die Gesellschaft. In meiner Frage geht es um eine ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Necur-Botnet soll Erpressungstrojaner Scarab massenhaft verbreiten

Information von BassFishFox vor 13 StundenErkennung und -Abwehr

12,5 Millionen Spam-Mails aus einem Bot-Netz mit 6 Millionen Computern? Eigentlich eine schwache Leistung. Die Erpresser setzen dabei auf ...

Microsoft

Nadeldrucker-Problem unter Windows - Microsoft liefert Updates

Information von BassFishFox vor 14 StundenMicrosoft

Hat ja nicht lange gedauert. Nachdem die November-Updates für Windows 7, 8.1 und 10 zahlreiche Nadeldrucker lahmgelegt hatten, stellt ...

Linux

Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde

Information von Frank vor 22 StundenLinux14 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 1 TagBatch & Shell9 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Heiß diskutierte Inhalte
Windows Server
Kann man im KMS nachschauen , wieviele Clients den Key in Anspruch genommen haben
gelöst Frage von rainergugusWindows Server15 Kommentare

Hallo, wir haben einen KMS Windows 10 Key. Dieser ist ja W7 kompatibel. Aber unser Windows 7 Pool registriert ...

Linux
Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde
Information von FrankLinux14 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Router & Routing
Zwei Netzwerke erstellen
Frage von bunteblumeRouter & Routing14 Kommentare

Hallo Zusammen, Ich möchte gerne ein backup von einem bestimmten Folder welcher auf dem Server regelmässig synchronisiert wird auf ...

Windows 10
Alle Programme mit bestimmtem Namen automatisch (per GPO) deinstallieren
gelöst Frage von lordofremixesWindows 1012 Kommentare

Hallo zusammen, gibt es eine Möglichkeit, alle Programme beginnend mit z.B. "Dell" im Namen per Script und somit per ...