Sto cercando di cercare il campo name
nel mio database utilizzando LIKE
. Se ordino l'SQL "a mano" in questo modo:Utilizzo dei parametri denominati con PDO per LIKE
$query = "SELECT * \n"
. "FROM `help_article` \n"
. "WHERE `name` LIKE '%how%'\n"
. "";
$sql = $db->prepare($query);
$sql->setFetchMode(PDO::FETCH_ASSOC);
$sql->execute();
Quindi restituirà risultati rilevanti per "come".
Tuttavia, quando mi rivolgo in una dichiarazione preparata:
$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();
sto ottenendo sempre risultati zero.
Cosa sto sbagliando? Sto usando le dichiarazioni preparate in altri posti nel mio codice e funzionano bene.
possibile duplicato di [Istruzione preparazione PDO non elaborazione parametri] (http://stackoverflow.com/questions/2434560/pdo-prepare-statement-not-processing-parameters) – outis