Foutcode genereren als 1 van de queries mislukt.
Ik heb een vraagje.
ik ben bezig met een aantal scripts waar ook een aantal queries aan vast zitten.
Nu is het zo dat als 1 van die queries misluk om wat voor een reden dan ook.
dat users deze melding zien.
Er is iets fout met de connectie naar de database.
Maar ik zou graag willen dat er dit gebeurt.
als er dus een fout is dus de result werkt niet.
Dan wil ik dat gebruikers een unieke meldings code krijgen.
voor die querie die fout is gegaan.
Dat zou ik dan weer kunnen controleren doormiddel van in de DB te zoeken
welke querie bij die foutcode hoort.
Maar om nu zeg maar tig codes te maken en die in een db te stoppen met daarbij horende veld waar dus de betreffende querie en welke regel die in dat script staat te maken.
Vroeg ik mij af of dit ook makkelijker kan?
Graag hoor ik jullie reacties hierover.
Met vriendelijke groet,
Thomas de vries.
En de mail op de achtergrond verstuurd wordt.
Alleen de functie mail werkt bij mij niet.
Werk met swiftmailer.
Dus dat ziet ernaar uit dat ik voor elke querie eigenlijks elke keer hetzelfde moet doen.
Gewijzigd op 14/02/2011 22:41:10 door thomas de vries
Thomas de vries op 14/02/2011 22:38:11:
Ja idd zoiets kan ik ook doen dat de user alleen een srry melding krijgt.
En de mail op de achtergrond verstuurd wordt.
Alleen de functie mail werkt bij mij niet.
Werk met swiftmailer.
Dus dat ziet ernaar uit dat ik voor elke querie eigenlijks elke keer hetzelfde moet doen.
En de mail op de achtergrond verstuurd wordt.
Alleen de functie mail werkt bij mij niet.
Werk met swiftmailer.
Dus dat ziet ernaar uit dat ik voor elke querie eigenlijks elke keer hetzelfde moet doen.
Ok, maar jij werkt met swiftmailer.
Ik mag aannemen dat je er dan qua mailen zelf wel uit kan komen.
http://swiftmailer.org/wikidocs/v3/tutorials/basic
Een simpel voorbeeld heb ik al gegeven, je moet het alleen nog even aanpassen.
Gewijzigd op 14/02/2011 23:13:52 door Sander de Vos
Warning: mysqli_query() expects parameter 1 to be mysqli, null given
Dit is dus wat ik heb
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
En dit is mijn query
Maar ik denk niet dat dit de handigste methode is. Als er 1 query mislukt, kan ik me voorstellen dat er in hetzelfde script meerdere queries mislukken. Voor elke keer dat het script aangeroepen wordt, krijg jij dus x aantal e-mails in je inbox.
Dit zou je beter op kunnen lossen door een try-catch constructie te gebruiken en Exceptions te gebruiken om je foutmeldingen af te handelen. Zoiets bijvoorbeeld:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
try {
$result1 = $mysqli->query($sql1);
if($result1 === false) {
throw new Exception(md5($sql1));
}
// Voer hieronder meerdere queries op dezelfde manier uit
}
catch(Exception $e) {
$hash = $e->getMessage();
// Schrijf bijvoorbeeld een record naar de database met opgegeven hash en uitgevoerde
// query oid. Controleer of er al een record met die hash bestaat, en zo niet, mail een waarschuwing naar jouw adres.
}
?>
try {
$result1 = $mysqli->query($sql1);
if($result1 === false) {
throw new Exception(md5($sql1));
}
// Voer hieronder meerdere queries op dezelfde manier uit
}
catch(Exception $e) {
$hash = $e->getMessage();
// Schrijf bijvoorbeeld een record naar de database met opgegeven hash en uitgevoerde
// query oid. Controleer of er al een record met die hash bestaat, en zo niet, mail een waarschuwing naar jouw adres.
}
?>
Zodra je in het try blok 'throw new Exception' aangeroepen hebt, stop de verdere uitvoer van dat blok en wordt het catch blok uitgevoerd. Op die manier kun je heel eenvoudig bepalen welke methode van foutafhandeling je wilt toepassen. Lees ook op internet eens meer over het gebruik van Exceptions.
Goed idee. Uit een hash is zo lekker veel informatie te halen ;)
Uiteraard volstaat ieder andere methode van genereren van een uniek id ook...