2013-02-04 63 views
0

如何獲取catid =「someid」的數組?在zend框架中獲取數組的條件

我曾嘗試這一點,但沒有奏效

public function findCatArr($catid) 
{ 
    $select = $this->getDbTable()->select(); 
    $select->setIntegrityCheck(false); 
    $select->from('photo',array('id','catid','pic','desc' 
    ))->where("catid"." LIKE '%".$catid."%'"); 
    $row = $this->getDbTable()->fetchAll($select); 


    if (0 == count($row)) { 
     return; 
    }else{ 

     return $row->toArray(); 


     } 
    } 

回答

6

我想你想:

->where('catid = ?', $catid); 

如果你真的想要做一個LIKE搜索,那麼它的:

->where('catid LIKE ?', '%'.$catid.'%'); 

但只在需要時才使用,因爲LIKE搜索比直接索引查找要慢很多。

如果$catid是ID數組,那麼這應該工作:

->where('catid IN (?)', $catid); 
+0

注意'where()'中佔位符('?')的使用,這是非常重要的,因爲'Zend_Db'中的許多類不再支持具有連接變量的舊語法樣式。 – RockyFord

0

上的id

$選擇 - >其中( 「CATID =?」,$ CATID擷取在Zend中鹼的陣列);

基於在Zend的

LIKE搜索

$選擇 - >在哪裏( 「CATID樣?」, '%' $ CATID '%'。);