आपके पास वाक्यविन्यास गलत है; डबल-उद्धृत स्ट्रिंग के अंदर एक अवधि रखने की कोई आवश्यकता नहीं है। इसके बजाय, इसे और अधिक पसंद किया जाना चाहिए
$query = mysql_query("SELECT * FROM table WHERE the_number LIKE '$prefix%'");
आप यह देखने के लिए स्ट्रिंग को प्रिंट करके इसकी पुष्टि कर सकते हैं कि यह पहले मामले के समान है।
बेशक यह अच्छा विचार नहीं है एसक्यूएल इंजेक्शन के खतरे के कारण इस तरह से क्वेरी स्ट्रिंग में वेरिएबल्स को इंजेक्ट करने के लिए। कम से कम आपको mysql_real_escape_string
के साथ वैरिएबल की सामग्री से मैन्युअल रूप से बचना चाहिए , जो इसे शायद इस तरह दिखाई देगा:
$sql = sprintf("SELECT * FROM table WHERE the_number LIKE '%s%%'",
mysql_real_escape_string($prefix));
$query = mysql_query($sql);
ध्यान दें कि sprintf
. के पहले तर्क के अंदर परिणाम में एक बार प्रदर्शित होने के लिए प्रतिशत चिह्न को दोगुना करने की आवश्यकता है।