PHP 7 ने mysql_query()
. से छुटकारा पा लिया है क्योंकि यह कई तरह से समस्याग्रस्त है! एपीआई अच्छी प्रथाओं को प्रोत्साहित नहीं करता है, आधिकारिक लाइन यह है कि यह बिना रखरखाव के है, और कोई तैयार विवरण नहीं है!?! यह अनिवार्य रूप से PHP में सबसे बड़ी समस्या है जो एसक्यूएल इंजेक्शन के लिए खराब प्रथाओं को प्रोत्साहित करती है, और यह एक बड़ी बड़ी बुरी स्थिति है।
हालांकि, मैं लीगेसी कोडबेस के साथ काम करता हूं, इसलिए मुझे कुछ मामलों में आपके जैसी ही स्थिति से निपटना होगा। यदि आपके पास एक छोटा कोडबेस है, तो बस अपनी डीबी कनेक्शन विधि अपडेट करें। यदि आपके पास एक बड़ा कोडबेस है, तो मेरा सुझाव है:
- इस कोडबेस के लिए अपने php संस्करण को php 5.6 पर रोलबैक करें, यह 2016 के लिए थोड़ा और समर्थित होगा।
- पीडीओ में अपडेट करने के लिए अपना समय लें (आप इसे कम वर्बोज़ बनाने के लिए पीडीओ के आसपास रैपर बना सकते हैं और अभी भी तैयार प्रश्नों की अनुमति दे सकते हैं)।
- mysqli पर ध्यान न दें। यदि आपको mysql_* से अपग्रेड करने में 5 मिनट लगते हैं, तो आप शायद इसे गलत कर रहे हैं, और अपने आप को sql-इंजेक्शन के लिए खुला छोड़ रहे हैं। बस पीडीओ के लिए जाएं और तैयार प्रश्नों का उपयोग करना शुरू करें ताकि आप रात को सो सकें।
- यदि आप अभी भी अधिक आधुनिक परियोजनाओं में php 7 का उपयोग करना चाहते हैं, तो पुराने php 5.6 लीगेसी कोडबेस के साथ एक कंटेनर इंस्टेंस को स्पिन करें।