Ik heb hier een PHP opdracht liggen waar ik niet uitkom. Wie kan mij zeggen hoe ik een dergelijke opdracht het best kan aanpakken en waar ik aan moet denken. De opdracht luid:
Schrijf een script dat databasefouten automatisch opslaat in een logbestand
Waar loop je vast?
Begrijp je de hele vraag/opdracht niet?
Weet je niet hoe je databasefouten kunt signalen?
Weet je niet hoe je een logbestand (is het echt een bestand of een database?) inricht?
Loop je vast bij het vullen van het logbestand?
Kortom: geef concreet aan waar je vast loopt (en wat je zelf al hebt geprobeerd).
Misschien een cliché, maar waar loop je vast?
Wat heb je al wel uitgevonden?
- Datum/tijd weergeven in php?
- Een bestand opslaan met php? (file_get_contents() , file_put_contents() )
- Een error echoën en in een variabele zetten?
- error nummers opvragen van je database?
- volledige tekst opvragen van je error van de database?
Dat zijn zo denk ik de materialen die je daarvoor nodig hebt.
Klinkt haast als een strikvraag... Dat kan in PHP met de functie error_log(). Het eerste voorbeeld behandelt de case: database onbereikbaar.
<?php
// Send notification through the server log if we can not
// connect to the database.
if (!Ora_Logon($username, $password)) {
error_log("Oracle database not available!", 0);
}
?>
Ik begrijp de opdracht wel maar heb geen idee hoe ik dit met PHP kan uitvoeren. Maar wanneer je iets wilt opslaan in een logbestand zul je waarschijnlijk wel te maken hebben met INSERT INTO
Ik begrijp de opdracht wel maar heb geen idee hoe ik dit met PHP kan uitvoeren. Maar wanneer je iets wilt opslaan in een logbestand zul je waarschijnlijk wel te maken hebben met INSERT INTO
Nee, dat is nu juist de strikvraag: je kunt geen foutmeldingen opslaan in een database als de database onbereikbaar is.
Heren er wordt gevraagd om de database fouten op te slaan in een LOGBESTAND en niet in de database.
Ik denk bij deze opdracht aan het maken van enkele functies zoals
- db_connect
- db_select_database
- db_query
- db_fetch_row
deze functies roepen de gelijknamige mysql_ php functies aan maar werken de foutafhandeling af door de mysql_error in een bestand te schrijven, voorzien van een datum en tijd.
Dat schreef ik toch ook in mijn eerste reply Frank?
Echter schreef Niels iets met INSERT INTO... en dat gaat wat lastig als de database plat ligt.
Vandaar dat we de 'hint' gaven dat dit niet kon als de database plat ligt.
Kortom een file based log bestand is het handigst hiervoor.