2014-03-03 42 views
1

我看了一个多小时在各种网站,但我无法解决我的问题。PDO:准备bindvalue和像%

所以这里是工作的代码:

$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值。

我该如何解决?

谢谢。

回答

3

你没有​​。

结合后,您需要执行,然后取:

$q->bindValue(':n',"%code%",PDO::PARAM_STR); 
$q->execute(); 
while ($data = $q->fetch(PDO::FETCH_ASSOC)) 

,你可以像这样绑定PHP变量:

$q->bindValue(':n','%'.$var.'%',PDO::PARAM_STR); 
+0

+1其实,我觉得,他的实际的问题是在'“%” $ var。'%''部分,是的,它没有执行! –

+0

@ user3376036:是否有效? –

+0

omg,谢谢,我真的没有看到...现在它工作正常!谢谢 –