Vinzenz Mai: LogDatei mit Ausgabe mysqlerror()

Beitrag lesen

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