2009-06-21 13 views
7

Şu kodum varsütun kullanmamak ve her şeyi seçerek

$result = $handle->select()->from('store_details') 
           ->where('store_details.store_id=?', $id) 
           ->columns('store_details.store_name'); 
           //->query(ZEND_DB::FETCH_OBJ); 

Ancak, çalıştırdığımda tüm satır seçildi, sadece istediğim sütun değil. İşte çıktı __toString

SELECT `store_details`.*, `store_details`.`store_name` 
FROM `store_details` WHERE (store_details.store_id=8) 

Herhangi bir yardım?

cevap

10

columns() yöntem veya birleştirme varolan için sütun ekleme içindir. Sorgunuzu doğru yoludur:

$result = $handle->select()->from('store_details','store_details.store_name')->where('store_details.store_id=?', $id); 

Bir dize olarak, aralarından() yöntemine ikinci parametre olarak istediğiniz sütunları belirtmek gerekir sadece bir sütun, ya yönelik bir dizi olarak eğer çoklu sütun. Zend_Db_Select docs Gönderen:() yönteminden ikinci argüman ise

, lütfen ilgili tablodan select sütunları belirleyebilirsiniz. sütun belirtmezseniz, " sütunlarının tümü" için SQL joker karakteri "*" şeklindedir.

Sen dizeleri basit dizideki sütunları listelemek veya sütun takma bir ilişkisel haritalama olarak sütun isme olabilir. sorgu için yalnızca bir sütun varsa ve bir sütun diğer adı belirtmeniz gerekmiyorsa, bir dizi yerine düz dizesi olarak listeleyebilirsiniz.

+0

[Dokümantasyon] (http://framework.zend.com/apidoc/1.9/Zend_Db/Select/Zend_Db_Select.html#columns) _adding_ sütunları ile ilgili kısımdan bahsetmediğinden, bu (!) Bilmek güzel bir şeydir : "FROM deyiminde kullanılan sütunları belirtir." – WoodrowShigeru

4

Zaten seçme nesne (anlamına gelir from() önce denirdi) varsa, $select->reset(Zend_Db_Select::COLUMNS); davranmalı ve örneğimizde yaptığımız gibi o zaman columns() diyoruz.

İlgili konular