2012-06-15 17 views
5

ओओपी परिप्रेक्ष्य से, PHP में डीएओ (डेटा एक्सेस ऑब्जेक्ट) बनाने का उचित तरीका क्या है?PHP में एक डीएओ बनाने का उचित तरीका

  • GetAllAccounts
  • GetAccountByID
  • UpdateAccount
  • DeleteAccount
  • InsertAccount
  • :

    उदाहरण के लिए (एक बुनियादी उदाहरण के रूप में खाते का उपयोग करके), मेरे AccountDAO निम्नलिखित कार्यों में से कुछ होगा

तो एक बार जब मैं डेटाबेस में सभी खातों को लाता हूं, तो क्या मुझे उन्हें कॉलर में खाता ऑब्जेक्ट्स की सरणी के रूप में वापस कर देना चाहिए? क्या मुझे बस MySQL परिणाम सेट वापस करना चाहिए?

क्या आप डीएओ का कोई अच्छा उदाहरण जानते हैं?

उत्तर

-1

इसके लिए आपको एक वर्ग है कि 3 तरीकों एक यह है कि डेटाबेस के लिए कनेक्शन बनाएँ शामिल कर सकते हैं, दूसरा एक है कि घनिष्ठ संबंध और तीसरे एक है कि एसक्यूएल क्वेरी

<?php 
class Database{ 

    public function con_open(){ 
     $con = mysql_connect("domain","username","password"); 
      if (!$con) 
      { 
       die('Could not connect: ' . mysql_error()); 
      } 
     mysql_select_db("db_name", $con); 
    } 

    public function query($sql){ 
     $result = mysql_query($sql); 
      if(!$result){ 

      }else{  
        return $result; 
       } 
    } 

    public function fetch($result){ 
     $row = mysql_fetch_array($result); 
     return $row; 
    } 

    public function con_close(){ 
     mysql_close($con); 
    } 
} 


$db = new Database(); 

?> 

आशा इस वसीयत आप के लिए उपयोगी कार्यान्वित

+2

न केवल आपको 'mysql_ * 'एक्सटेंशन का उपयोग नहीं करना चाहिए, लेकिन आपका उदाहरण स्पष्ट रूप से कोड को बदलने के बिना कनेक्शन विवरण बदलने की अनुमति नहीं देता है। – cspray

+2

मुझे लगता है कि ओपी एक डीएओ (डेटाबेस में एक विशिष्ट तालिका तक पहुंचने के लिए उपयोग किया जाता है) की तलाश में है, डेटाबेस डेटाबेस नहीं। – AdmiralAdama

0

आप डीएओ बनाने के लिए सही रास्ते पर हैं: आपके द्वारा सूचीबद्ध विधियों को निश्चित रूप से डीएओ का हिस्सा होना चाहिए।

अपने विशिष्ट प्रश्न का उत्तर देने के लिए, डीएओ को किसी भी डेटाबेस विशिष्ट ऑब्जेक्ट को रिसाव नहीं करना चाहिए, यह कुछ डेटाबेस अवधारणाओं को रिसाव कर सकता है, भले ही वे डेटाबेस विक्रेता के लिए विशिष्ट न हों।

तो नहीं, आपको एक MySQL परिणाम सेट वापस नहीं करना चाहिए। लेकिन आप एक सामान्य परिणाम सेट बना सकते हैं जो एक MySQL परिणाम सेट को लपेटता है और यह उच्च स्तरीय अवधारणाओं (स्तंभों को निकालने के बजाय पूरी वस्तुओं को निकालने) के साथ काम कर सकता है।

संपादित करें: मेरा इरादा आपको वास्तव में परिणाम सेट रैपर बनाने के लिए नेतृत्व नहीं करना है, आप शुरुआत में सुझाए गए ऑब्जेक्ट्स की एक सरणी भी वापस कर सकते हैं। यह सिर्फ एक उदाहरण था।

+0

कूल धन्यवाद, मैंने एएसपी दुनिया में इस तरह के कुछ काम किए हैं, लेकिन आज तक मेरी सभी PHP स्क्रिप्ट मूल प्रक्रियात्मक स्क्रिप्ट हैं। मैं अपने PHP ऐप्स को ओओपी php ऐप्स में बदलने की कोशिश कर रहा हूं। – carlg

संबंधित मुद्दे