Mysqli::query में यदि आप MYSQLI_USE_RESULT का उपयोग करते हैं, तो बाद की सभी कॉल्स एरर कमांड्स को सिंक से बाहर कर देंगी जब तक कि आप mysqli_free_result()
को कॉल न करें।एकाधिक संग्रहीत प्रक्रियाओं को कॉल करते समय, आप निम्न त्रुटि में चला सकते हैं:"सिंक से बाहर आदेश; अब आप इस आदेश को नहीं चला सकते हैं। यह कॉल के बीच परिणाम ऑब्जेक्ट पर बंद() फ़ंक्शन का उपयोग करते समय भी हो सकता है। ठीक करने के लिए समस्या, प्रत्येक संग्रहीत प्रक्रिया कॉल के बाद mysqli ऑब्जेक्ट पर next_result() फ़ंक्शन को कॉल करना याद रखें। नीचे उदाहरण देखें:
<?php
// New Connection
$db = new mysqli('localhost','user','pass','database');
// Check for errors
if(mysqli_connect_errno()){
echo mysqli_connect_error();
}
// 1st Query
$result = $db->query("call getUsers()");
if($result){
// Cycle through results
while ($row = $result->fetch_object()){
$user_arr[] = $row;
}
// Free result set
$result->close();
$db->next_result();
}
// 2nd Query
$result = $db->query("call getGroups()");
if($result){
// Cycle through results
while ($row = $result->fetch_object()){
$group_arr[] = $row;
}
// Free result set
$result->close();
$db->next_result();
}
else echo($db->error);
// Close connection
$db->close();
?>
मुझे उम्मीद है कि इससे मदद मिलेगी