यहाँ इस तरह की चीज़ के लिए मूल टेम्पलेट है, बिल्ट-इन 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
}
}