Her er den grundlæggende skabelon for denne slags ting, ved hjælp af indbyggede php-funktioner (forudsat gammeldags mysql, men lignende ved brug af andre database back-ends eller højere niveau biblioteker). I dette eksempel håndteres fejl ved at kaste undtagelser, men det er kun én måde at gøre det på.
- Opret forbindelse til databasen
- Sørg for, at forbindelsen lykkedes
- Kør forespørgslen
- Sørg for, at forespørgslen ikke mislykkedes af en eller anden grund (normalt en SQL-syntaksfejl). Hvis det mislykkedes, skal du finde ud af hvorfor og håndtere den fejl
- Tjek, at forespørgslen returnerede mindst én række (nul rækker er typisk et specialtilfælde)
- Sløjfe over de returnerede rækker, og gør hvad end det er, du skal have gjort.
Undtagelsesklasserne skal defineres (de er den eneste ikke-indbyggede syntaks her, men du bør ikke smide almindelige vaniljeundtagelser).
Eksempelkode:
<?PHP
//try to connect to your database.
$conn = mysql_connect(...);
//handle errors if connection failed.
if (! $conn){
throw new Db_Connect_Error(..);
}
// (try to) run your query.
$resultset = mysql_query('SELECT ...');
//handle errors if query failed. mysql_error() will give you some handy hints.
if (! $resultset){
// probably a syntax error in your SQL,
// but could be some other error
throw new Db_Query_Exception("DB Error: " . mysql_error());
}
//so now we know we have a valid resultset
//zero-length results are usually a a special case
if (mysql_num_rows($resultset) == 0){
//do something sensible, like tell the user no records match, etc....
}else{
// our query returned at least one result. loop over results and do stuff.
while($row = mysql_fetch_assoc($resultset)){
//do something with the contents of $row
}
}