जब आप mysqli के माध्यम से एक बयान निष्पादित करते हैं, तो परिणाम वास्तव में PHP में नहीं होते हैं जब तक कि आप उन्हें नहीं लाते - परिणाम डीबी इंजन द्वारा आयोजित किए जाते हैं। तो mysqli_stmt
ऑब्जेक्ट के पास यह जानने का कोई तरीका नहीं है कि निष्पादन के तुरंत बाद कितने परिणाम हैं।
अपना कोड इस प्रकार संशोधित करें:
$stmt->execute();
$stmt->store_result(); // pull results into PHP memory
// now you can check $stmt->num_rows;
यह आपके विशेष उदाहरण पर लागू नहीं होता है, लेकिन यदि आपका परिणाम सेट बड़ा है, तो $stmt->store_result()
बहुत सारी मेमोरी का उपभोग करेगा। इस मामले में, यदि आप केवल यह पता लगाना चाहते हैं कि क्या कम से कम एक परिणाम लौटाया गया है, तो परिणामों को संग्रहीत न करें; इसके बजाय, बस जांचें कि क्या परिणाम मेटाडेटा शून्य नहीं है:
$stmt->execute();
$hasResult = $stmt->result_metadata ? true : false;