Errors afvangen
Niets is erger als een fout melding waar jij niet mee kan. Het is daarom belangrijk om de fout meldingen
Als er een fout optreed in mysql kan je altijd een error opvragen!
Dit kan als volgt
mysql_query('SELECT * FROM bestaat_niet') or die(mysql_errno().': '.mysql_error());
Hier kan je veel mee alleen waneer je bezoekers deze fouten generen kan je er niets mee loggen is dan verplicht.
Dat kan eenvoudig met een functie die je zelf maakt ;)
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?
//log errors made by mysql. Log IP, error, sql code, requested url and date
function log_error($sql){
global $_SERVER;
$text = 'Date:'.date('Y-m-d H:i:s').' mysql error: '.mysql_errno().':'.mysql_error().' sql:'.$sql.' page:'.$_SERVER['REQUEST_URI'].' IP:'.$_SERVER['REMOTE_ADDR'];
$dir = 'logs/mysql.txt';
$handle = fopen($dir,'a');
fwrite($handle,$text."\r\n");
}
?>
//log errors made by mysql. Log IP, error, sql code, requested url and date
function log_error($sql){
global $_SERVER;
$text = 'Date:'.date('Y-m-d H:i:s').' mysql error: '.mysql_errno().':'.mysql_error().' sql:'.$sql.' page:'.$_SERVER['REQUEST_URI'].' IP:'.$_SERVER['REMOTE_ADDR'];
$dir = 'logs/mysql.txt';
$handle = fopen($dir,'a');
fwrite($handle,$text."\r\n");
}
?>
Zorg dat mysql.txt 777 schrijf rechten heeft
Daarna na elke query
mysql_query($sql) or die(log_error($sql);
en voortaan worden alle errors gelogd.