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

पीडीओ कनेक्शन को ठीक से कैसे सेट करें

लक्ष्य

जैसा कि मैंने देखा, इस मामले में आपका लक्ष्य दुगना है:

  • प्रति डेटाबेस एकल/पुन:प्रयोज्य कनेक्शन बनाएं और बनाए रखें
  • सुनिश्चित करें कि कनेक्शन ठीक से सेट किया गया है

समाधान

मैं पीडीओ कनेक्शन से निपटने के लिए अनाम फ़ंक्शन और फ़ैक्टरी पैटर्न दोनों का उपयोग करने की अनुशंसा करता हूं। इसका इस्तेमाल कुछ इस तरह दिखेगा:

$provider = function()
{
    $instance = new PDO('mysql:......;charset=utf8', 'username', 'password');
    $instance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $instance->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
    return $instance;
};

$factory = new StructureFactory( $provider );

फिर किसी भिन्न फ़ाइल में या उसी फ़ाइल में निम्नतर:

$something = $factory->create('Something');
$foobar = $factory->create('Foobar');

फ़ैक्टरी को स्वयं कुछ इस तरह दिखना चाहिए:

class StructureFactory
{
    protected $provider = null;
    protected $connection = null;

    public function __construct( callable $provider )
    {
        $this->provider = $provider;
    }

    public function create( $name)
    {
        if ( $this->connection === null )
        {
            $this->connection = call_user_func( $this->provider );
        }
        return new $name( $this->connection );
    }

}

इस तरह से आपको एक केंद्रीकृत संरचना मिल जाएगी, जो यह सुनिश्चित करती है कि कनेक्शन केवल तभी बनाया जाए जब आवश्यक हो। यह इकाई-परीक्षण और रखरखाव की प्रक्रिया को भी बहुत आसान बना देगा।

इस मामले में प्रदाता बूटस्ट्रैप चरण में कहीं मिल जाएगा। यह दृष्टिकोण एक स्पष्ट स्थान भी देगा जहां कॉन्फ़िगरेशन को परिभाषित करना है, जिसका उपयोग आप डीबी से कनेक्ट करने के लिए करते हैं।

ध्यान रखें कि यह एक अत्यंत सरलीकृत उदाहरण . है . आपको निम्नलिखित दो वीडियो देखने से भी लाभ हो सकता है:

साथ ही, मैं दृढ़ता से एक उचित ट्यूटोरियल पढ़ने की सलाह दूंगा पीडीओ के उपयोग के बारे में (ऑनलाइन खराब ट्यूटोरियल का एक लॉग है)।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. कुंजी कीवर्ड का क्या अर्थ है?

  2. बिना शर्त के mysql जॉइन का उपयोग कैसे करें?

  3. मैसकल त्रुटि 1452 - चाइल्ड रो को जोड़ या अपडेट नहीं कर सकता:एक विदेशी कुंजी बाधा विफल हो जाती है

  4. जावा प्रोग्राम में SQL इंजेक्शन हमलों को रोकें

  5. MySQL COS () फ़ंक्शन - MySQL में किसी संख्या की कोज्या लौटाएं