$stmt->bind_param() एक निश्चित प्रकार के लिए दिए गए वेरिएबल की जांच नहीं करता है, यह केवल उन्हें निर्दिष्ट प्रकार में परिवर्तित करता है। और आपकी स्ट्रिंग 'आआआआ' को एक इंट-वैल्यू में बदल दिया गया है:0. इस तरह php इसे करता है।
डेटाबेस इंसर्ट स्टेटमेंट जाँचने के लिए गलत जगह है, अगर आपके वेरिएबल में उपयोगी/सही मान हैं। इसे पहले करें और उन्हें केवल तभी सम्मिलित करने का प्रयास करें, जब आपके सत्यापन कार्य करते हैं।
एक int के लिए सत्यापन करने के लिए, आप php-function is_numeric() या is_int() का उपयोग कर सकते हैं।