Ето основния шаблон за този вид неща, използвайки вградени php функции (приемайки mysql в стар стил, но подобно, използвайки други бек-ендове на бази данни или библиотеки от по-високо ниво). В този пример грешките се обработват чрез хвърляне на изключения, но това е само един от начините да го направите.
- Свържете се с базата данни
- Уверете се, че свързването е успешно
- Изпълнете заявката
- Уверете се, че заявката не е неуспешна по някаква причина (обикновено грешка в SQL синтаксиса). Ако се е провалил, разберете защо и отстранете тази грешка
- Проверете дали заявката е върнала поне един ред (нула редове обикновено е специален случай)
- Превъртете върнатите редове, като правите каквото трябва.
Класовете на изключенията трябва да бъдат дефинирани (те са единственият невграден синтаксис тук, но не трябва да хвърляте обикновени изключения).
Примерен код:
<?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
}
}