सीडीबीकनेक्शन शुरू करते समय "कनेक्टिंग स्ट्रिंग खाली नहीं हो सकती" त्रुटि

मैंने डेटाबेस कनेक्शन बनाने की कोशिश की लेकिन यह ठीक नहीं हुआ,

try
    {
        $connection=new CDbConnection();
        $connection->active=true;
        $transaction=$connection->beginTransaction();
    }
    catch(Exception $e)
    {
        echo($e);
    }

मुझे एक त्रुटि मिली: -

connecting string cannot be empty
1
@DaSourcerer न केवल कोई , बल्कि ऐसा करने के लिए भरपूर कारण हो सकते हैं। सबसे स्पष्ट बात यह है कि अस्थायी रूप से किसी अन्य डेटाबेस का उपयोग करना है। आप अपने एप्लिकेशन के कॉन्फ़िगरेशन में एक और डीबी कनेक्शन शामिल नहीं करना चाहते हैं, अगर आप इसे केवल एक सिंगल, सरल, एक एक्शन-जैसे ऑपरेशन के लिए उपयोग कर रहे हैं, है ना?
जोड़ा लेखक trejder, स्रोत
क्या कोई कारण है कि आप किसी एप्लिकेशन घटक के माध्यम से डीबी कनेक्शन को कॉन्फ़िगर नहीं कर रहे हैं?
जोड़ा लेखक DaSourcerer, स्रोत
@trejder मुझे यकीन नहीं है कि क्या तर्क सत्य है: आवेदन घटकों को तब तक लोड नहीं किया जाता है जब तक आवश्यक हो, इसलिए कोई ओवरहेड शामिल नहीं होना चाहिए। ओटीओएच, यहां एक घटक को कन्फिगर करने से कोड डुप्लिकेशंस कम हो जाएगा यदि उस कनेक्शन को कहीं और चाहिए।
जोड़ा लेखक DaSourcerer, स्रोत

1 उत्तर

डीएओ पर वाईआई गाइड से:

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

     

कनेक्शन स्थापित करने के दौरान त्रुटि उत्पन्न होने पर एक अपवाद उठाया जाएगा (उदा। खराब डीएसएन या अमान्य उपयोगकर्ता नाम/पासवर्ड)।

$connection=new CDbConnection($dsn,$username,$password);
// establish connection. You may try...catch possible exceptions
$connection->active=true;
......
$connection->active=false; //close connection

आपने $ dsn के लिए कुछ भी नहीं पारित किया है, इसलिए यह अपवाद फेंक देता है:

CDbException (Yii :: t ('yii', 'CDbConnection.connectionString खाली नहीं हो सकता है।'));

1
जोड़ा