2010-10-05 11 views

उत्तर

34
... LIKE '%%%s%%'", mysql_real_escape_string('test')); 

% चरित्र आप के साथ ही यह से बचने के लिए की जरूरत है मुद्रित करने के लिए:

SELECT * FROM `table` WHERE `text` LIKE '%s 

लेकिन यह उत्पादन करना चाहिए। इसलिए पहले दो %%% वर्ण मुद्रित करेंगे, जबकि तीसरा एक प्रकार के विनिर्देशक %s के लिए होगा। अंत में आपको एक डबल %% की आवश्यकता है।

+0

धन्यवाद: स्थिरता के लिए, चीजें हैं जो एसक्यूएल अंदर() प्रारूप स्ट्रिंग sprintf के बाहर एकल उद्धरण नहीं हैं डाल । इससे मेरी मदद की। –

3

प्रयास करें:

$test = sprintf("SELECT * FROM `table` WHERE `text` LIKE '%%%s%%'", mysql_real_escape_string('test')); 

sprintf में, आप एक % संकेत प्राप्त करना चाहते हैं, तो आप %% डालने के लिए किया है। तो यह पहले वाइल्डकार्ड % के लिए पहले वाइल्डकार्ड %, %s स्ट्रिंग के लिए %% और %% के लिए %% है।

0
$test = "SELECT * FROM `table` WHERE `text` LIKE '%s%'" . mysql_real_escape_string('test'); 

echo $test; 
1

आपको प्रतिशत संकेत %% के साथ प्रतिशत संकेतों से बचने की आवश्यकता है।

$test = sprintf("SELECT * FROM `table` WHERE `text` LIKE '%%%s%%'", mysql_real_escape_string('test')); 

echo $test; 
1

आप संदर्भों को झुका रहे हैं।

$test = sprintf(
      "SELECT * FROM `table` WHERE" 
      . "`xt` LIKE '%s'", 
      "%" . mysql_real_escape_string("test") . "%" 
     );