2014-03-03 59 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,謝謝,我真的沒有看到...現在它工作正常!謝謝 –