$test = sprintf("SELECT * FROM `table` WHERE `text` LIKE '%%s%'", mysql_real_escape_string('test'));
echo $test;
उत्पादन:MySQL की तरह + php sprintf
SELECT * FROM `table` WHERE `text` LIKE '%test%'
$test = sprintf("SELECT * FROM `table` WHERE `text` LIKE '%%s%'", mysql_real_escape_string('test'));
echo $test;
उत्पादन:MySQL की तरह + php sprintf
SELECT * FROM `table` WHERE `text` LIKE '%test%'
... LIKE '%%%s%%'", mysql_real_escape_string('test'));
%
चरित्र आप के साथ ही यह से बचने के लिए की जरूरत है मुद्रित करने के लिए:
SELECT * FROM `table` WHERE `text` LIKE '%s
लेकिन यह उत्पादन करना चाहिए। इसलिए पहले दो %%
%
वर्ण मुद्रित करेंगे, जबकि तीसरा एक प्रकार के विनिर्देशक %s
के लिए होगा। अंत में आपको एक डबल %%
की आवश्यकता है।
प्रयास करें:
$test = sprintf("SELECT * FROM `table` WHERE `text` LIKE '%%%s%%'", mysql_real_escape_string('test'));
sprintf
में, आप एक %
संकेत प्राप्त करना चाहते हैं, तो आप %%
डालने के लिए किया है। तो यह पहले वाइल्डकार्ड %
के लिए पहले वाइल्डकार्ड %
, %s
स्ट्रिंग के लिए %%
और %%
के लिए %%
है।
$test = "SELECT * FROM `table` WHERE `text` LIKE '%s%'" . mysql_real_escape_string('test');
echo $test;
आपको प्रतिशत संकेत %%
के साथ प्रतिशत संकेतों से बचने की आवश्यकता है।
$test = sprintf("SELECT * FROM `table` WHERE `text` LIKE '%%%s%%'", mysql_real_escape_string('test'));
echo $test;
आप संदर्भों को झुका रहे हैं।
$test = sprintf(
"SELECT * FROM `table` WHERE"
. "`xt` LIKE '%s'",
"%" . mysql_real_escape_string("test") . "%"
);
यह भी मुझे उदाहरण के साथ मदद बाहर
http://www.encodez.com/blog/2009/11/escaping-in-mysql-like-statement-when-sprintf
धन्यवाद: स्थिरता के लिए, चीजें हैं जो एसक्यूएल अंदर() प्रारूप स्ट्रिंग sprintf के बाहर एकल उद्धरण नहीं हैं डाल । इससे मेरी मदद की। –