या बस एक "SELECT @id AS id"
करें फिर $row->id
ठीक काम करेगा। आवश्यक होने पर नाम को सार्थक रखने के लिए मैं हमेशा चुनिंदा कॉलम का नाम बदलता हूं :-)
बीटीडब्लू, आप बस कॉल को संयोजित कर सकते हैं और @... (ए स्टेटमेंट डिलीमीटर के साथ) का चयन कर सकते हैं और आरएस लौटाया गया मूल्य होगा। दुर्भाग्य से यह एक बहु-परिणाम देता है और आपको पूरा सेट फ्लश करने की आवश्यकता होती है अन्यथा बाद के प्रश्न रुक जाएंगे। निम्नलिखित उदाहरण देखें:
$db->multi_query( "CALL addNewUser($name,$age,@id);SELECT @id as id" );
$db->next_result(); // flush the null RS from the call
$rs=$db->store_result(); // get the RS containing the id
echo $rs->fetch_object()->id, "\n";
$rs->free();
वैकल्पिक रूप से addNewUser में चयन जोड़ें और आउट परम के बजाय RS लौटाएं
$rs = $db->query( "CALL addNewUser($name,$age)" );
echo $rs->fetch_object()->id, "\n";
$rs->close();
$db->next_result(); // flush the null RS from the call
पहला एक मल्टीक्वेरी (NULL, RS) सेट और दूसरा a (RS, NULL) सेट देता है, इसलिए आप एक साधारण क्वेरी () कॉल का उपयोग कर सकते हैं जो पहले fetch_object () को एम्बेड करता है, लेकिन आपको अभी भी RS स्टैक को फ्लश करने की आवश्यकता है।