CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren |
22.08.2007, 15:36:52
|
Anfänger
|
|
Registriert seit: Aug 2007
Beiträge: 3
|
|
.txt datei in Mysql importieren..
Hallo zusammen!
Ich bin ein ganz neuer hier und habe ein Frage zum Import einer .txt Datei in meine Mysql Datenbank!
Ich nutze ein php script um .txt Daten zu importieren! Leider ist auf meinem Webspace die max_execution_time auf 10 begrenzt und ich habe auch keine Möglichkeit diese Ausführzeit zu erhöhen!
Ich möchte täglich 3 .txt Dateien in die Datenbank importieren! Bei zwei Dateien klappt das dann auch wunderbar! Nur bei der 3. .txt Datei (9 MB) reicht diese Zeit nicht mehr aus!
Nun meine Frage: Gibt es eine andere Möglichkeit diese Daten zu importieren (etwa durch eine Umwandlung in ein anderes Format) bzw. gibt es die Möglichkeit diese .txt Datei zu teilen und sie dann nacheinander in die Table zu laden, oder werden dann jedesmal die Daten der vorherigen Datei im Table überschrieben?
Ich möchte durch die Teilung und das seperate Importieren der Dateien erreichen, dass die execution time nicht an Ihre Grenzen stösst und ich so alle erforderlichen Daten in den Table geladen bekomme!
Hier mal ein Auszug aus dem Script dass ich für den Import verwende:
$file = $phpbb_root_path . $import_path . "village.txt";
$sql = "TRUNCATE TABLE `".VILLAGE_TABLE;
mysql_query($sql);
$filearray = fopen ($file, "r");
while (!feof($filearray)) {
$line = fgets($filearray);
list($id, $name,$x, $y, $player, $points, $rank) = explode(',', $line);
$name = datadecode($name);
$name = addslashes($name);
$sql = "INSERT INTO " . VILLAGE_TABLE . " SET id='$id', name='$name', x='$x', y='$y', player='$player', points='$points', rank='$rank'";
$db->sql_query($sql);
}
fclose ($filearray);
echo $lang['import_success'];
Für Antworten/Tipps/Buh-Rufe o.ä wäre ich sehr dankbar!
LG
MarcS.
|
22.08.2007, 16:23:43
|
Junior Member
|
|
Registriert seit: Jun 2004
Beiträge: 473
|
|
AW: .txt datei in Mysql importieren..
Die max_execution_time Beschränkung kann man umgehen, indem man das Einleseskript mehrfach startet, aber dies ist nicht dein einziges Problem...
...es gibt auch noch eine maximale Größe, die hochgeladene Dateien nicht überschreiten dürfen und die wird bei dir kaum >=9MB sein.
Die Voreinstellung ist 2MB und (bei deiner Angabe für max_execution_time) mit Sicherheit nicht von deinem Anbieter vergrößert worden.
|
23.08.2007, 14:03:48
|
Anfänger
|
|
Registriert seit: Aug 2007
Beiträge: 3
|
|
AW: .txt datei in Mysql importieren..
Danke für die schnelle Antwort!
Also ich hab mich mit php-info mal schlau gemacht, folgende Angaben habe ich dort noch gefunden:
max_execution_time 10
max_input_nesting_level 64
max_input_time 10 10
memory_limit 25M
Demnach dürfte ich bis 25 MB als Script ausführen ?
Dann dürfte es ja kein Problem sein, oder ?
Wie könnte ich denn das Script noch einmal starten, bzw. wie viel mal sollte dass denn "mehrfach" gestartet werden ?
THX
Marc
|
23.08.2007, 14:19:31
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
AW: .txt datei in Mysql importieren..
Zitat:
Zitat von MarcS.
Demnach dürfte ich bis 25 MB als Script ausführen ?
|
Ja. Die Frage ist allerdings, wie File 3 auf Deine Kiste kommt. Per FTP ist das kein Thema, per Formular isses davon abhängig:
upload_max_filesize <= post_max_size <= memory_limit
Das ist auch entscheidend:
max_input_time 10
Zitat:
Wie könnte ich denn das Script noch einmal starten, bzw. wie viel mal sollte dass denn "mehrfach" gestartet werden ?
|
Per HTML (Beispiel):
Code:
<meta http-equiv="refresh" content="5; URL=http://hostname/script.php?von=$von&bis=$bis">
Das File kannste einmal lesen und als Array in die Session packen.
Wieviel Zeilen Du in <5 Sekunden importieren kannst, mußt Du selber testen.
Das ist nur das Prinzip - basteln mußte selber!
Geändert von meikel (†) (23.08.2007 um 14:21:10 Uhr)
|
23.08.2007, 14:48:47
|
Anfänger
|
|
Registriert seit: Aug 2007
Beiträge: 3
|
|
AW: .txt datei in Mysql importieren..
Danke vorab schon mal!
Also mt php.info bekomme ich folgende Informationen:
upload_max_filesize 100M
memory_limit 25M
Auch das dürfte dann demnach reichen.
Danke ich werde mich gleich mal ran setzen und testen!
Gruß
|
23.08.2007, 18:22:01
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
AW: .txt datei in Mysql importieren..
Zitat:
Zitat von MarcS.
upload_max_filesize 100M
memory_limit 25M
|
Blödsinn!
Damit Du ein X MB dickes File per HTTP gebacken kriegst, muß die Bedingung erfüllt sein.
upload_max_filesize <= post_max_size <= memory_limit
Wenn Du 100MB uploaden willst, muß das so aussehen
Code:
upload_max_filesize = 100M
post_max_size = 101MB
memory_limit = 109 MB
post_max_size muß etwas größer sein, damit der Submitknopf noch mit übertragen werden kann, und memory_limit sollte noch 8MB drüberliegen, weil das PHP Script auch noch etwas RAM braucht.
Allerdings isses sinnfrei, solche dicken Schinken per HTTP zu verschicken. Sowas macht man mit FTP.
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 09:47:15 Uhr.
|