Я просматривал час на разных сайтах, но я не мог решить свою проблему.
Итак, вот код, который работает:
$animes = array(); $q = $this->_db->query('SELECT id, nom, nom_id FROM animes WHERE nom LIKE "%code%"'); while ($data = $q->fetch(PDO::FETCH_ASSOC)) { $animes[] = new Anime($data); } return $animes;
И вот тот, который не работает:
$animes = array(); $q = $this->_db->prepare('SELECT id, nom, nom_id FROM animes WHERE nom LIKE :n'); $q->bindValue(':n',"%code%",PDO::PARAM_STR); while ($data = $q->fetch(PDO::FETCH_ASSOC)) { $animes[] = new Anime($data); } return $animes;`
Я использую %code%
в этом примере, но он будет использоваться с $info
который является значением $_POST
которое я извлекаю.
Как я могу это решить?
Спасибо.
вы не execute()
.
после связывания вам нужно выполнить, а затем извлечь:
$q->bindValue(':n',"%code%",PDO::PARAM_STR); $q->execute(); while ($data = $q->fetch(PDO::FETCH_ASSOC))
вы можете связать это с помощью переменной php:
$q->bindValue(':n','%'.$var.'%',PDO::PARAM_STR);