Ecco il modello di base per questo genere di cose, usando le funzioni php integrate (assumendo mysql vecchio stile, ma simili usando altri back-end di database o librerie di livello superiore). In questo esempio, gli errori vengono gestiti generando eccezioni, ma questo è solo un modo per farlo.
- Connettiti al database
- Assicurati che la connessione sia avvenuta correttamente
- Esegui la query
- Assicurati che la query non abbia avuto esito negativo per qualche motivo (di solito un errore di sintassi SQL). Se ha fallito, scopri perché e gestisci l'errore
- Verifica che la query abbia restituito almeno una riga (in genere zero righe è un caso speciale)
- Esegui il ciclo sulle righe restituite, facendo tutto ciò di cui hai bisogno.
Le classi di eccezione dovrebbero essere definite (sono l'unica sintassi non incorporata qui, ma non dovresti generare eccezioni semplici).
Codice di esempio:
<?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
}
}