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