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

एक स्थिर डेटाबेस वर्ग बनाने की कोशिश कर रहा हूं जिसे मैं कक्षा के बाहर किसी भी फ़ंक्शन से एक्सेस कर सकता हूं

आपकी कक्षा को स्थिर रूप से संचालित करने के लिए, आपको कुछ चीज़ें करने की ज़रूरत है।

सबसे पहले, कनेक्शन को स्थिर बनाएं, उदाहरण के लिए

private static $connection;

दूसरे, सभी अंडरस्कोर क्यों?

define('DB_HOST', 'localhost');
define('DB_NAME', 'your_db_name');
define('DB_USER', 'username');
define('DB_PASS', 'password');

साथ ही, कक्षा स्थिरांक का उपयोग क्यों करें? बस उन स्थिरांकों का उपयोग करें जिन्हें आप पहले ही परिभाषित कर चुके हैं।

तीसरा, कंस्ट्रक्टर को खो दें। आप इस वर्ग का एक उदाहरण बनाने की अपेक्षा नहीं कर सकते और इसे स्थिर रूप से उपयोग करें। मैं कनेक्शन के लिए आलसी-लोड दृष्टिकोण के लिए जाऊंगा

private static function getConnection() {
    if (self::$connection === null) {
        $dsn = sprintf('mysql:host=%s;dbname=%s;charset=utf8',
            DB_HOST, DB_NAME);

        self::$connection = new PDO($dsn, DB_USER, DB_PASS, array(
            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
            PDO::ATTR_EMULATE_PREPARES => false,
            PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
        ));
    }
    return self::$connection;
}

फिर, आपकी सार्वजनिक विधियां इस विधि को आंतरिक रूप से कॉल करेंगी। मैं आपका dbDataArray भी निकाल दूंगा आपको एक सहयोगी सरणी वापस करने का तरीका दिखाने के लिए विधि

public static function dbDataArray($query, $params = array()) {
    $stmt = self::getConnection()->prepare($query);
    $stmt->execute($params);
    return $stmt->fetchAll();
}



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP/MySQL में सप्ताह (दिनांक) का उपयोग करते समय मैं सप्ताह के पहले दिन को सोमवार तक कैसे सेट करूं?

  2. 'लोड डेटा' के साथ MySQL अनुमति त्रुटियां

  3. MySQL:लोड डेटा स्थानीय जानकारी सक्षम करें

  4. बेस 64 एन्कोडेड डेटा को बीएलओबी या टेक्स्ट डेटाटाइप के रूप में संग्रहीत करना

  5. स्प्रिंग बूट + डॉकर-लिखें + MySQL:कनेक्शन से इनकार कर दिया