Query controleren

Heb je ook zo'n hekel aan het iedere keer toevoegen van de volgende code?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
if (mysql_query()) {
    // query gaat goed, afhandelen
} else {
    // er gaat wat fout, melden
}
?>


Ik wel! Ik heb daarom een simpele functie geschreven die je query controleert. Mocht er een SQL injection of foutje voorkomen, dan staat ie direct in je log bestand.

Het is niet de meest nette manier, maar zo controleer je wel iedere query. Als er iets fout gaat krijgt de gebruiker dat te zien en dan wordt de fout automatisch opgeslagen in _errorlog.txt, inclusief wat gegevens.

Er verandert niks, behalve dat je op sql_query() over moet gaan i.p.v. mysql_query().

Enjoy, rate & comment! :)

Gesponsorde koppelingen

PHP script bestanden

  1. script.php

 

8 reacties op 'Query controleren'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Chris Horeweg
Chris Horeweg
2 jaar geleden
 
1 +1 -1 -1
Het gebruik maken van een die in een script is niet aan te raden, zeker niet als de website live gaat. De foutmeldingen dien je gewoon op het einde af te vangen, en afhankelijk of je op development of live ben, krijg je wel of geen foutmelding te zien. Verder is het gebruik van de verouderde mysql extensie niet aan te raden, kijk liever naar mysqli, PDO of iets vergelijkbaars =)
Karl Karl
Karl Karl
2 jaar geleden
 
0 +1 -2 -1
Tja, om nou nog met functies aan te komen zetten...
Dit script gaat ook niet werken als je meerdere database-verbindingen open hebt staan.
Milo S
Milo S
2 jaar geleden
 
0 +1 -1 -1
Kan het volgende:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo date('d').'-'.date('m').'-'.date('Y').' '.date('H').':'.date('i').':'.date('s');
?>


niet gewoon
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo date('d-m-Y H:i:s');
?>

worden.

Scheelt weer wat ruimte, maar verder vind ik hem niet zo bijzonder.

Dat word dan ongeveer:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
function sql_query($query)
{

    $sql = mysql_query($query);
    
    if($sql)
    {

        return $sql;
    }

    else
    {
        $bestand = fopen('_errorlog.txt', 'a');
        fwrite($bestand, date('d-m-Y H:i:s').' - '.$_SERVER['REQUEST_URI'].' - '.$query.' - '.mysql_error().' - '.$_SERVER['REMOTE_ADDR'].'\n');
        fclose($bestand);
        
        echo 'Er is een fout opgetreden in de query. <br />';
        echo 'Deze fout is opgenomen in onze error log en zal zo spoedig mogelijk worden verholpen.';
        exit();
    }
}

?>


Maar alsnog, hoeveel regels zijn het nou? is dat zo erg op even te typen?
TJVB tvb
TJVB tvb
2 jaar geleden
 
0 +1 -1 -1
Ik zou i.p.v. een die nog eerder een header redirect doen naar een pagina (bijvoorbeeld iets als dberror.html)
Erik Rijk
Erik Rijk
2 jaar geleden
 
0 +1 -1 -1
http://php.net/manual/en/function.error-log.php

Kwa wat je nu aan het doen bent is dit een betere functie om te gebruiken.
Wolf Wolf
Wolf Wolf
2 jaar geleden
 
0 +1 -0 -1
Om nog maar te zwijgen over de vraag waar en hoe (rechten) het errorrapport wordt opgeslagen.
Sander de Vos
Sander de Vos
2 jaar geleden
 
0 +1 -0 -1
Thnx, krijg vanaf nu een mail na een mysql ongeval xD

Om te reageren heb je een account nodig en je moet ingelogd zijn.