मेरे पास MySQLi, क्वेरी, और संबंधित मेमोरी प्रबंधन का उपयोग करने के बारे में कुछ प्रश्न हैं।MySQLi क्वेरी परिणाम: सर्वश्रेष्ठ दृष्टिकोण, क्या आप दोनों को बंद कर देते हैं, मुफ़्त, दोनों?
@ $db = new mysqli($dbhost, $un, $ps, $dbname);
$query = "SELECT field1, field2 ".
"FROM table1 ".
"WHERE field1={$some_value}";
$results = $db->query($query);
while ($result = $results->fetch_object()) {
// Do something with the results
}
$query = "SELECT field1, field2 ".
"FROM table2 ".
"WHERE field1={$some_value2}";
// question 1
$results = $db->query($query);
while ($result = $results->fetch_object()) {
// Do something with the second set of results
}
// Tidy up, question 2
if ($results) {
$results->free();
}
if ($db) {
$db->close();
}
// Question 3, a general one
: कोड यहाँ सिर्फ मेरे सवालों का स्पष्ट करने के लिए है, तो त्रुटि जाँच, आदि मुझे पता है कि किया जाना :)
मान लीजिए मैं इस तरह कुछ है की जरूरत के लिए उस पर डंप नहीं है तो, इसके बाद के संस्करण कोड में टिप्पणी के आधार पर, यहाँ मेरे सवालों हैं:
जब मैं
$results
से पीछे नहीं क्वेरी के परिणामों असाइन करते हैं, क्या पिछले परिणामों के साथ जुड़े स्मृति का क्या होगा? क्या मुझे नया कार्य सौंपने से पहले परिणाम मुक्त करना चाहिए?1 करने के लिए संबंधित है, जब मैं अंत में साफ करते हैं, अभी पिछले परिणाम पर्याप्त सफाई की जाती है?
जब मैं एक परिणाम को साफ करने, मैं के रूप में ऊपर यह मुक्त कराने की जानी चाहिए, कोशिश करते हैं मैं इसे बंद करने दिया जाना चाहिए, या दोनों?
मैं 3 सवाल पूछने क्योंकि mysqli::query
के लिए PHP प्रलेखन एक उदाहरण पास का उपयोग करता है, भले ही करीब mysqli_result
का हिस्सा (mysqli::query में उदाहरण 1 देखें) नहीं है। और इसके विपरीत, मेरा सामान्य PHP संदर्भ पाठ free
(PHP और MySQL वेब विकास, चौथा संस्करण, वेलिंग और थॉमसन) का उपयोग करता है।
आप उस पल को जानते हैं जब आपने किसी प्रोजेक्ट पर काम करने के बाद उम्र बढ़ाई है और आप केवल एक प्रश्न के उत्तर के लिए स्टैक ओवरफ्लो को जांचने का निर्णय लेते हैं कि आप पहले से ही पूछ चुके हैं और उस प्रश्न का उत्तर साल पहले हुआ था ...? उह ... मुझे बूढ़ा होना चाहिए :) नीचे फिर से महान उत्तरों के लिए धन्यवाद। –