Algemene structuur
Stap 1: de voorbereiding, de error reporting
Onze error reporting bestaat uit 2 delen, de algemene error reporting en onze functie voor onze sql te debuggen. Deze twee stukjes zet je helemaal bovenaan in je bestand.
1.1 Algemene php-error reporting:
dit stukje code zou in elk php-bestand moeten staan. Als je bezig bent met ontwikkelingen zet je het aan (1), als het bestand klaar is staat het uit (0) je wilt natuurlijk niet dat je gebruiker vreemde error's te zien krijgt!
2
3
4
5
# errors weergeven
ini_set('display_errors',1); // 1 == aan , 0 == uit
error_reporting(E_ALL | E_STRICT);
?>
1.2 Onze sql-debug functie:
Deze functie kan je op elke pagina zetten waar je de functie gebruikt. Wat je ook kan doen is de functie in een apart bestand zetten en deze includen op elke pagina waar je de functie gebruikt.
1.2.1 uitleg bij sql-debug functie:
$sql = je sql var, mag ook een andere naam hebben
$error = mysql_error()
$text = een tekst op te tonen dat het om een error gaat (deze tekst wordt ook weergeven indien de debug mode uit staat)
define('DEBUG_MODE',true) dient om de debug mode aan of uit te zetten.
Stap 2: Het echte werk, de query maken en afhandelen
2.1 De sql schrijven:
Dit stukje gebruiken we om de sql te schrijven. Tussen de aanhallingstekens (") zal onze sql komen.
2.1.1 Uitleg van de variabelen:
$sql = in $sql schrijven we onze sql, indien je bijvoorbeeld leden ophaalt maak je daar best $sql_get_leden of zoiets van dan weet je snel wat daar staat.
Let ook op de notatie (Netjes scripten!)
- Gebruik hoofdletters (niet voor tabellen, kollommen, ..)
- spring netjes in
2.1.2 voorbeeld:
2
3
4
5
6
VALUES ('',
'".mysql_real_escape_string($_POST['gebruikersnaam'])."',
'".mysql_real_escape_string($_POST['wachtwoord'])."'
)
";
2.1.3 Uitleg bij voorbeeld:
Zoals je ziet staan alles "sql-commando's" in hoofdletters. Dit is niet verplicht maar sterk aangeraden.
Ook heb ik netjes ingesprongen. Bij de values is het eerste '', dit is voor het id dat automatisch wordt ingevult. Dan hebben we de gebruikersnaam en het wachtwoord die uit een formulier komen + de mysql_real_escape_string() tegen sql-injectie! (-> zeer belangrijk!)
2.2 Nu komen we bij onze "Foutafhandeling":
We gaan checken of de query is gelukt en dit doen we met behulp van een if / else constructie. (En NIET met or die()!)
mysql_query geeft false als er een fout is. Als er een fout is zal showSQLError (onze sql-debug functie) weergeven worden anders zullen we verder gaan naar het volgende stukje van onze constructie
2
3
4
{
echo showSQLError($sql,mysql_error(),'Fout met database.');
}
2.3 Onze query is gelukt:
We zitten nu in het laatste stukje van onze constructie. Wat moet je hier nu doen? Wel, indien je meerdere rijen geselecteerd hebt uit de database gebruik je een while loop om alles netjes uit te lezen. Indien je 1 rij uit de database hebt gehaald kan je die zo weergeven. MAAR in beide gevallen moet er eerst natuurlijk nog iets anders gebeuren we moeten onze query fetchen, dit doen we met behulp van mysql_fetch_assoc(). Tussen de haakjes van deze functie komt dan onze $result te staan.
Het zou ook kunnen dat we een rij verwijderd hebben of een rij toegevoegt. In dat geval kan je hier een bedankje echoën.
Is dit duidelijk? Bekijk dan zeker even de voorbeeldjes dan kan je zien hoe dit in de praktijk werkt.
Inhoudsopgave
- Algemene structuur
- Voorbeeld 1 - Het ophalen van gegevens
- Voorbeeld 2 - Invoeren van gegevens
- Samenvatting