Aqui está o modelo básico para esse tipo de coisa, usando funções php embutidas (assumindo o mysql de estilo antigo, mas semelhante usando outros back-ends de banco de dados ou bibliotecas de nível superior). Neste exemplo, os erros são tratados lançando exceções, mas essa é apenas uma maneira de fazer isso.
- Conectar ao banco de dados
- Verifique se a conexão foi bem-sucedida
- Execute a consulta
- Certifique-se de que a consulta não falhou por algum motivo (geralmente um erro de sintaxe SQL). Se falhou, descubra o motivo e lide com esse erro
- Verifique se a consulta retornou pelo menos uma linha (zero linha normalmente é um caso especial)
- Percorra as linhas retornadas, fazendo o que for necessário.
As classes de exceção precisariam ser definidas (elas são a única sintaxe não embutida aqui, mas você não deve lançar exceções simples).
Código de exemplo:
<?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
}
}