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

php में mysql के प्रक्रियात्मक और वस्तु-उन्मुख कार्यान्वयन में अंतर?

जिसका उत्तर बेहतर है है "यह निर्भर करता है।" किसी भी चीज़ की तरह, विभिन्न दृष्टिकोण हैं और आपको यह भी ध्यान रखना चाहिए कि ऑब्जेक्ट का उपयोग करने वाला कोड ऑब्जेक्ट ओरिएंटेड नहीं है, लेकिन फिर भी प्रक्रियात्मक रूप से लिखा जा सकता है। उसी तरह, कोड जो वस्तुओं का उपयोग नहीं करता है वह अभी भी मॉड्यूलर हो सकता है।

मैं mysqli . का उपयोग करना चुनूंगा हालांकि हर बार क्लास प्रदर्शन में कोई महत्वपूर्ण अंतर नहीं है। आपको शायद सरलीकृत बहुरूपता जैसे डीबी वर्ग का उपयोग करने के कुछ लाभों का एहसास नहीं होगा, इसलिए कक्षा का उपयोग करने के लिए मेरा एकमात्र तर्क यह है कि मैं वाक्यविन्यास पसंद करता हूं। हालांकि, mysqli . का उपयोग करने के बजाय सीधे मैं शायद अनुशंसा करता हूं कि आप इसे विस्तारित करें या लिखें। आप इसे केवल कक्षा के साथ ही कर सकते हैं।

class DB extends mysqli {
    public function __construct() {
        parent::__construct($_SERVER['DB_HOST'],
            $_SERVER['DB_USER'], $_SERVER['DB_PASS']);
    }
}

यह एक बहुत ही उथला उदाहरण है।

मैं जिस बहुरूपता के बारे में बात कर रहा था उसका एक उदाहरण कुछ इस तरह होगा:

class User implements DAO {
    private $db;
    public function __construct(DB $db) {
        $this->db = $db;
    }
}

//Testing code is simplified compared to using it in production
class TestDB extends DB {}
new User(new TestDB);
new User(new DB);

वैसे मैं स्पष्ट रूप से PDO . को प्राथमिकता देता हूं mysqli . से अधिक



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. InnoDB (LOAD DATA INFILE) में डेटा लोडिंग को कैसे तेज करें?

  2. एडब्ल्यूएस आरडीएस पर mysql से कनेक्ट नहीं हो सकता (त्रुटि 2003)

  3. Python3 + MySql:MySQLdb मॉड्यूल लोड करने में त्रुटि:'MySQLdb' नाम का कोई मॉड्यूल नहीं

  4. दूसरे स्तर का SQL इंजेक्शन क्या है

  5. एक क्वेरी से परिणाम सेट डालने के दौरान MySQL ऑन डुप्लीकेट कुंजी अद्यतन