Hallo
... und wie bekomme ich jetzt sämtliche Fehlermeldungen in eine Variable, zBsp: $inhalt ????
bei Funktionen, die eine Zeichenkette zurückliefern?
Ganz einfach durch eine Zuweisung:
$inhalt = mysql_error();
hier nun der geänderte Code:
<?php require_once ('konfiguration.php');
$db_link = mysql_connect (MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT);
$db_sel = mysql_select_db( MYSQL_DATENBANK )
or die("Auswahl der Datenbank fehlgeschlagen!!!");
hier hast Du immer noch ein die() drin.
$sql = "delete from tab_wetter";
Du solltest Dir TRUNCATE anschauen.
$sql2 = "LOAD DATA LOCAL INFILE '$datei' ignore INTO TABLE tab_wetter FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\' LINES TERMINATED BY '\r\n'";
$result = mysql_query($sql); /*or die ('Auswahl der Datenbank fehlgeschlagen'.mysql_error()); echo "DB gelöscht! ";*/
Nein, nicht einfach weitermachen, sondern loggen.
$result = mysql_query($sql2); /*or die ('Auswahl der Datenbank fehlgeschlagen'.mysql_error()); echo " Datei eingelesen!";*/
rename("$datei", "$ziel"."(".date("d.m.Y", time())." um " .date("G_i_s", time()).")");
rename kann fehlschlagen, das solltest Du loggen :-)
$text1= $result;
$text2 = " Die Datei wurde in den Ordner "erledigt" verschoben"." am ". date("d.m.Y", time())." um ". date("G:i", time())." Uhr"."\n";
$inhalt = $text1.$text2;
[...]
$handle = fopen ("logfile.txt", "a");
fwrite($handle, $inhalt);
fclose($handle);
Nutze doch file_put_contents(). Natürlich kann auch diese Operation fehlschlagen :-)
Grundsätzlich rate ich Dir zum EVA-Prinzip:
Deine Eingabe ist, soweit ich das sehe, das Einlesen der Wetterdaten.
Die Verarbeitung besteht aus
- Löschen der bestehenden Daten Deiner Tabelle,
- Einlesen der neuen Daten in Deine Tabelle,
- Verschieben der Eingabedatei.
Bei der Ausgabe erfolgen
- Anhängen der Logdaten an eine Logdatei,
- Ausgabe einer HTML-Seite, die über Erfolg oder Misserfolg berichtet.
Freundliche Grüße
Vinzenz