Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

स्थिर बनाम सिंगलटन कक्षाएं कैसे काम करती हैं (डेटाबेस)

निम्नलिखित उदाहरण पर विचार करें जो डेटाबेस ऑब्जेक्ट के उदाहरण तक पहुंचने के लिए सिंगलटन डिज़ाइन पैटर्न का उपयोग करता है। (इसका उद्देश्य एक ही कनेक्शन को बार-बार एप्लिकेशन के माध्यम से पुन:उपयोग करना है)

class Database {

    protected static $_dbh;
    const HOST = 'localhost';
    const DATABASE = 'dbname';
    const USERNAME = 'username';
    const PASSWORD = 'password';

    //declare the constructor as private to avoid direct instantiation.   
    private function __construct() { }

    //access the database object through the getInstance method.
    public static function getInstance() {
        if(!isset($_dbh)) {
            #Connection String.
            self::$_dbh = new PDO('mysql:host='.self::HOST.';dbname='.self::DATABASE,self::USERNAME,self::PASSWORD);
            self::$_dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        }
        return self::$_dbh;
    }
}

अब अगर मुझे आवेदन में कहीं भी कक्षा का उपयोग करना है तो मैं इसे इस तरह आसान कर दूंगा।

require_once('database.php');
$dbh = Database::getInstance();
$sth = $dbh->query('SELECT * FROM sometable');
$result = $sth->fetchAll(PDO::FETCH_ASSOC);

Database::getInstance(); . पर कॉल करें स्थैतिक विधि का उपयोग करता है। यह मूल रूप से क्या करता है यह आपको कंस्ट्रक्टर को निजी घोषित करके ऑब्जेक्ट को सीधे इंस्टेंट करने से रोकता है, और इसके बजाय यह जांचता है कि क्या ऑब्जेक्ट पहले से ही इंस्टेंट है। यदि सत्य है तो पहले से ही तत्काल वस्तु वापस कर दें। अन्यथा नया बनाएं और नव निर्मित वस्तु लौटाएं। यह सुनिश्चित करता है कि पूरे एप्लिकेशन में एक ही डेटाबेस कनेक्शन का पुन:उपयोग किया जाए।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JDBC त्रुटि:08S01 कभी-कभी होता है

  2. मैं लिंकिंग टेबल के आधार पर पंक्ति नाम कैसे आउटपुट करूं?

  3. डेटाबेस मानों को जोड़ने में मदद चाहिए

  4. mysql सर्वर में स्थायी डिफ़ॉल्ट टाइमज़ोन कैसे सेट करें?

  5. MySQL में अगली उपलब्ध आईडी ढूँढना