तैयार बयान कुछ भी नहीं बचते हैं। जब आप कोई स्टेटमेंट तैयार करते हैं, तो आपकी क्वेरी पहले से कंपाइल हो जाती है, जिससे उसे केवल प्लेसहोल्डर्स ( ?
की जरूरत होती है। ) भरा जाना है। चूंकि पूर्व-संकलित क्वेरी के SQL को बदलने का कोई तरीका नहीं है, इसलिए भागने की आवश्यकता नहीं है।
इसे ठीक करने के लिए, %
से बचें और _
मैन्युअल रूप से।
जोड़ा गया:
थोड़ा सामान्य ज्ञान तर्क:आपके मामले में, जब कोई उपयोगकर्ता %
. में प्रवेश करता है एक खोज बॉक्स में, आपका $search
वेरिएबल में स्ट्रिंग है %%%
. MySQL को कैसे पता चलेगा कि कौन सा %
यह बच जाना चाहिए, और इसे अकेला छोड़ देना चाहिए?