Query controleren

Door Roel -, 13 jaar geleden, 5.441x bekeken

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

 

Er zijn 7 reacties op 'Query controleren'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Chris -
Chris -
13 jaar geleden
 
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 =)


13 jaar geleden
 
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
13 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
13 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
13 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
13 jaar geleden
 
0 +1 -0 -1
Om nog maar te zwijgen over de vraag waar en hoe (rechten) het errorrapport wordt opgeslagen.
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Sander de Vos
Sander de Vos
13 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.

Inhoudsopgave

  1. script.php

Labels

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.