के लिए पीडीओ के साथ नामित पैरामीटर का उपयोग करके मैं LIKE
का उपयोग कर अपने डेटाबेस में name
फ़ील्ड को खोजने का प्रयास कर रहा हूं। अगर मैं एसक्यूएल शिल्प 'hand` द्वारा इस तरह:LIKE
$query = "SELECT * \n"
. "FROM `help_article` \n"
. "WHERE `name` LIKE '%how%'\n"
. "";
$sql = $db->prepare($query);
$sql->setFetchMode(PDO::FETCH_ASSOC);
$sql->execute();
तो इसके लिए संगत परिणाम देगा' कैसे '।
हालांकि, जब मैं इसे एक तैयार बयान में बदल जाते हैं:
$query = "SELECT * \n"
. "FROM `help_article` \n"
. "WHERE `name` LIKE '%:term%'\n"
. "";
$sql->execute(array(":term" => $_GET["search"]));
$sql->setFetchMode(PDO::FETCH_ASSOC);
$sql->execute();
मैं हमेशा शून्य परिणाम हो रही है।
मैं क्या गलत कर रहा हूं? मैं अपने कोड में अन्य स्थानों में तैयार बयान का उपयोग कर रहा हूं और वे ठीक काम करते हैं।
संभावित पीडीओ [पीडीओ तैयार कथन प्रसंस्करण पैरामीटर नहीं] के डुप्लिकेट [http://stackoverflow.com/questions/2434560/pdo-prepare-statement-not-processing-parameters) – outis