0
我目前正在如何在Zend的Table對象上執行我的查詢並獲得一個Rowset作爲回報。我特別需要這個理由是因爲我正在修改現有項目的代碼,所以我沒有太大的靈活性。如何在表中使用子查詢執行查詢並在Zend中獲取Rowset對象?
查詢:
SELECT *
FROM `tblname` ud
WHERE ud.user_id = some_id
AND
(
(ud.reputation_level > 1)
OR
(
(SELECT COUNT(*)
FROM `tblname` t
WHERE t.user_id = ud.user_id
AND t.category_id <=> ud.category_id
AND t.city_id <=> ud.city_id
) = 1
)
)
有沒有辦法來形容使用選擇對象此查詢?
上一頁SQL解決方案是非常簡單,包括一個WHERE子句:
$where = $this->getAdapter()->quoteInto("user_id = ?",$user_id);
return $this->fetchAll($where);
我需要產生相同結果的類型(因此它可以通過現有的代碼進行處理),但對於更復雜的查詢。
事情我已經試過
$db = Zend_Db_Table::getDefaultAdapter();
return $db->query($sql)->fetchAll();
---------------- OR ----------------------
return $this->fetchAll($select);
---------------- OR ----------------------
return $this->_db->query($sql)->fetchAll();
但他們要麼產生數組而不是對象或失敗,基數違規的消息。
我很感激任何關於如何在Zend中處理SQL文本查詢的幫助。