घातक त्रुटि MySQL में नहीं है; अनुपलब्ध अनुक्रमणिका सूचना अपेक्षाकृत कम-गंभीरता वाली चेतावनी है।
घातक निम्नलिखित तीन स्थितियों के कारण आपके PHP कोड में त्रुटि है:
- mysqli एक लॉट की रिपोर्ट करता है अपेक्षाकृत हानिरहित स्थितियों के लिए भी चेतावनियों की।
- आप फेंक रहे हैं
mysqli_sql_exception
सभी त्रुटियों के लिए और आपकेmysqli_report(MYSQLI_REPORT_ALL);
. के कारण चेतावनियां लाइन। - आपका PHP कोड उस अपवाद को नहीं पकड़ रहा है (अर्थात यह
try{}
में नहीं है एक उपयुक्तcatch(){}
. के साथ ब्लॉक करें ब्लॉक), और न आए अपवाद घातक होते हैं।
जैसा कि दूसरे उत्तर में बताया गया है, आप पहले वाले के बारे में ज्यादा कुछ नहीं कर सकते हैं। तो, आप या तो अपना mysqli_report(...)
. बदलकर इसे ठीक कर सकते हैं MYSQLI_REPORT_STRICT
पर सेट करना या MYSQLI_REPORT_OFF
, या वास्तव में MYSQLI_REPORT_ALL
. के अलावा कुछ भी ।
(संपादित करें:नीचे w3d की टिप्पणी एक अच्छी व्याख्या क्यों देती है, और सुझाव देती है कि आप mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT)
का उपयोग कर सकते हैं। एक अच्छे विकल्प के रूप में)
सर्वोत्तम प्रथाओं के लिए, और इसके साथ संयोजन में, आपको try{}
. का उपयोग करके इसे ठीक से ठीक करना चाहिए और catch(){}
आपके कोड के भीतर उचित रूप से।