2012-10-04 12 views
5

मैं mysql db से कनेक्ट करने के लिए इस विधि का उपयोग कर रहा हूँ:डेटाबेस से कनेक्ट करने में mysqli :: real_connect और new mysqli ऑब्जेक्ट के बीच क्या अंतर है?

$this->_Con = mysqli_init(); 
$this->_Con->real_connect($this->_DB['Server'],$this->_DB['User'],$this->_DB['Pass'],$this->_DB['DB']); 

उत्तर

7

इसका सिर्फ एक और अपने डेटाबेस से कनेक्ट के रास्ते:

$this->_Con = new mysqli($this->_DB['Server'],$this->_DB['User'],$this->_DB['Pass'],$this->_DB['DB']); 

अंतर जब मैं इस पद्धति का उपयोग कनेक्ट क्या है। यदि आप mysqli_init() का उपयोग करते हैं तो यह पहले mysqli ऑब्जेक्ट को प्रारंभ करेगा। फिर ऑब्जेक्ट का उपयोग करके आप डेटाबेस से कनेक्ट करने के लिए real_connect() पर कॉल करेंगे। लेकिन जब आप new mysqli() का उपयोग करते हैं तो आप पैरामीटर के रूप में कनेक्शन मानों में गुजरकर mysqli ऑब्जेक्ट प्रारंभ कर रहे हैं, तो यह एक ही समय में प्रारंभिकरण और कनेक्शन करता है।

नोट: किसी भी पैरामीटर के साथ कन्स्ट्रक्टर को कॉल करना mysqli_init() को कॉल करने जैसा ही है।

आपके पहले मामले में आपको कनेक्शन ऑब्जेक्ट रिटर्न वैल्यू के रूप में मिल रहा है क्योंकि आप पैरामीटर के साथ mysqli() कन्स्ट्रक्टर को कॉल कर रहे हैं। तो आप इस पर सवाल चला सकते हैं। लेकिन अपने दूसरे मामले में आप इस तरह कनेक्शन स्टोर करने के लिए की जरूरत है,

$con = $this->_Con->real_connect($this->_DB['Server'],$this->_DB['User'],$this->_DB['Pass'],$this->_DB['DB']); 

तब पर $con

+0

तो तुम मतलब है कि मेरी $ इस क्वेरी चला -> _ कोन इन 2 विधि के साथ ही होगा ?? लेकिन जब मैं दूसरी विधि का उपयोग करने का प्रयास करता हूं, तो मुझे लगता है कि मेरा सम्मिलन कथन नई पंक्ति डालने में विफल रहता है। क्या आपको कोई विचार है क्यों ?? –

+0

मेरे संपादन की जांच करें !! – Deepak

+1

@ user1650716 आम तौर पर आप 'mysql_init() 'से' new mysqli() '* * * * से ऑब्जेक्ट का उपयोग करते हैं। दोनों नहीं – staticsan

संबंधित मुद्दे