Minitut
Wanneer je je als beginner gaat verdiepen in databases dan kom je al snel deze constructie tegen:
Code (php)
1
2
3
4
5
2
3
4
5
<?
// een willekeurige query
$sql = "SELECT * FROM tabel ORDER BY veldnaam";
$res = mysql_query ($sql) or die (mysql_error ());
?>
// een willekeurige query
$sql = "SELECT * FROM tabel ORDER BY veldnaam";
$res = mysql_query ($sql) or die (mysql_error ());
?>
In de eerste regel van de code wordt een query in elkaar gezet.
In de tweede regel wordt de query uitgevoerd en als er iets fout gaat komt er een error op het scherm.
Eigenlijk is dat een heel gebruiksonvriendelijke manier van programmeren. Wanneer er iets niet helemaal goed gaat, krijgt de bezoeker van je pagina alleen die error te zien, en verder niets. Het zou beter zijn als de error gemeld werd, maar dat de code daaronder evengoed uitgevoerd wordt zodat de bezoeker wat meer in beeld krijgt dan alleen een wit scherm met een error.
Daar is een heel simpele oplossing voor: gebruik geen or die
Doe in plaats daarvan dit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?
// een willekeurige query
$sql = "SELECT * FROM tabel ORDER BY veldnaam";
if (!($res = mysql_query ($sql))) {
trigger_error (mysql_error ());
}
else {
// hier de rest van de code als het goed is gegaan
while ($row = mysql_fetch_array ($res)) {
// hier de data echoën
}
}
?>
// een willekeurige query
$sql = "SELECT * FROM tabel ORDER BY veldnaam";
if (!($res = mysql_query ($sql))) {
trigger_error (mysql_error ());
}
else {
// hier de rest van de code als het goed is gegaan
while ($row = mysql_fetch_array ($res)) {
// hier de data echoën
}
}
?>
Als er dan iets fout gaat krijgt de bezoeker een foutmelding, maar de rest van de pagina krijgt hij gewoon in beeld. Als programmeur zou je op deze manier ook queryfouten kunnen loggen in een tabel.
Tot zover deze mini-tut. Ik vind dat "or die" niet gebruiksvriendelijk is. Als jij dat ook vindt, weet je nu hoe je het anders aan kunt pakken :-)