सभी mysqli फ़ंक्शन/विधियां विफल हो सकती हैं, जिस स्थिति में वे झूठी वापसी करेंगे। अर्थात। अगर तैयार () विफल रहता है तो $stmt एक ऐसी वस्तु नहीं है जिस पर आप एक विधि को कॉल कर सकते हैं लेकिन एक बूल (झूठा)। आपको वापसी मूल्यों की जांच करनी होगी और कुछ त्रुटि प्रबंधन जोड़ना होगा, उदा.
$stmt = $mysqli->prepare('SELECT name FROM `rooms` WHERE r_id=?');
if ( !$stmt ) {
printf('errno: %d, error: %s', $mysqli->errno, $mysqli->error);
die;
}
$b = $stmt->bind_param('i', $roomID);
if ( !$b ) {
printf('errno: %d, error: %s', $stmt->errno, $stmt->error);
}
$b = $stmt->execute();
if ( !$b ) {
and so on and on
देखें http://docs.php.net/mysqli-stmt.errno एट अल
इस मामले में आप शायद इस समस्या में फंस गए हैं कि आप कोई अन्य स्टेटमेंट नहीं बना सकते हैं, जबकि पिछले स्टेटमेंट के लिए अभी भी परिणाम/परिणाम सेट लंबित हैं।
देखें http://docs.php.net/mysqli-stmt.close
: