Hallo zusammen,
ich lasse per Cronjob um Mitternacht ein Wartungs-Skript laufen, welches viele SQL-Abfragen enthält.
Nun würde ich mir gerne eine eMail zuschicken lassen, welche alle mysql_errors ausgibt. Ich nehme an, am einfachsten wäre es wahrscheinlich, eine Funktion für die DB-Abfrage zu erstellen. Diese könnte nach der Abfrage überprüfen ob mysql_error gesetzt ist, und wenn dies der Fall ist, diese an einen String hängen.
Aber zeigt mysql_error den Fehler der letzten Abfrage oder einfach nur den letzten Fehler? Denn wenn er einfach nur den letzten Fehler zeigt und ich habe 5 SQL-Abfragen und in der ersten war ein Fehler, alle anderen liefen jedoch einwandfrei, so wäre mysql_error ja noch immer gesetzt, oder nicht? Oder wird es mit jeder neuen Abfrage überschrieben und wieder zurückgesetzt?
Ich hatte mir folgendes überlegt:
Was sagen die Profis dazu?
Vielen Dank!
a.
ich lasse per Cronjob um Mitternacht ein Wartungs-Skript laufen, welches viele SQL-Abfragen enthält.
Nun würde ich mir gerne eine eMail zuschicken lassen, welche alle mysql_errors ausgibt. Ich nehme an, am einfachsten wäre es wahrscheinlich, eine Funktion für die DB-Abfrage zu erstellen. Diese könnte nach der Abfrage überprüfen ob mysql_error gesetzt ist, und wenn dies der Fall ist, diese an einen String hängen.
Aber zeigt mysql_error den Fehler der letzten Abfrage oder einfach nur den letzten Fehler? Denn wenn er einfach nur den letzten Fehler zeigt und ich habe 5 SQL-Abfragen und in der ersten war ein Fehler, alle anderen liefen jedoch einwandfrei, so wäre mysql_error ja noch immer gesetzt, oder nicht? Oder wird es mit jeder neuen Abfrage überschrieben und wieder zurückgesetzt?
Ich hatte mir folgendes überlegt:
PHP-Code:
function mysql_abfrage($abfrage){
$abfrage = mysql_real_escape_string($abfrage);
$resultat = mysql_query($abfrage);
if (isset(mysql_error())) {
$fehler .= 'MySQL Fehler '.mysql_errno().': '.mysql_error().' bei Abfrage: '.$abfrage;
}
}
//Skript:
$fehler = '';
//Abfragen 1, 2, 3:
$abfrage = 'SELECT....';
mysql_abfrage($abfrage);
$abfrage = 'SELECT....';
mysql_abfrage($abfrage);
$abfrage = 'SELECT....';
mysql_abfrage($abfrage);
mail('abc@de.fg', 'Fehlermeldungen', $fehler);
Vielen Dank!
a.

Kommentar