2010-08-16 6 views
5

बस एक त्वरित यहाँ प्रश्न:एक mysqli कनेक्शन एक नई वस्तु instantiating बिना फिर से खोल दी जा सकता है

मैं अपने डेटाबेस, यानी के साथ बातचीत करने के लिए वस्तु उन्मुख शैली ... चुनते हैं, तो

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

और फिर मैं किसी बिंदु पर कनेक्शन को बंद करने के लिए $mysqli->close(); का उपयोग करता हूं ...

क्या मैं एक और क्वेरी $mysqli->query(); को शुरू करके उस कनेक्शन को फिर से खोल सकता हूं, या मुझे एक नया MYSQLI obje चालू करना है सीटी?

+0

@YourCommonSense - प्राचीन उत्तर यहां पर्याप्त क्यों नहीं हैं? –

+0

@ रिकजेम्स हाल ही में एक है :) –

उत्तर

6

नहीं, आपको एक नई MYSQLI ऑब्जेक्ट को तुरंत चालू करना होगा। आप हालांकि एक ही चर $mysqli उपयोग कर सकते हैं, लेकिन आप इस कोड को फिर से लिखने के लिए है:

$mysqli = new mysqli("localhost", "my_user", "my_password", "world"); 
3

आप बस mysqli कनेक्शन बंद नहीं कर सकता है और यह पुन: उपयोग।

+1

न सिर्फ "सकता", लेकिन "चाहिए"। –

+0

जब आप एकीकरण से डेटा की प्रतीक्षा कर रहे हैं, उदाहरण के लिए, कनेक्शन को बंद करने और डेटा प्राप्त करने के बाद इसे फिर से खोलने का एक बहुत अच्छा कारण है। इस तरह से आप "बहुत सारे कनेक्शन" से बचते हैं। –

4

हालांकि यह दस्तावेज में नहीं है, mysqli::connect() एक विधि है, और आप इसे उपयोग कर सकते हैं "फिर से कनेक्ट करने के लिए" अपने वस्तु सिर्फ निर्माता के लिए एक उपनाम होने की -appears।

<?php 
$host = '127.0.0.1'; 
$user = 'user'; 
$pass = 'pass'; 
$name = 'storage'; 

$mysqli = new mysqli($host, $user, $pass, $name); 
// Do stuff... 
$mysqli->close(); 
// Later on... 
$mysqli->connect($host, $user, $pass, $name); 
+0

मुझे संदेह है कि प्रयास का 1% "नया" में है और 99% प्रयास "कनेक्ट" में है। –

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