zend sütunlarını kullanarak, ve her şeyi seçerek değil

2 Cevap php

Ben aşağıdaki kodu var

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

However, when I run it, the entire row is selected, not just the column I wanted. Here is the output from __toString

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

Herhangi bir yardım?

2 Cevap

columns() yöntemi, varolan bir from ya da join ile adding sütun içindir. Sorgunuzu oluşturmak için doğru yolu:

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

Sadece bir sütun veya birden çok sütun için bir dizi olarak eğer bir dizge olarak, gelen () yöntemine ikinci parametre olarak istediğiniz sütunları belirtmek gerekir. Kimden Zend_Db_Select docs :

In the second argument of the from() method, you can specify the columns to select from the respective table. If you specify no columns, the default is "*", the SQL wildcard for "all columns".

You can list the columns in a simple array of strings, or as an associative mapping of column alias to column name. If you only have one column to query, and you don't need to specify a column alias, you can list it as a plain string instead of an array.

Zaten select nesnesi (from() denilen önce gelir) varsa, $select->reset(Zend_Db_Select::COLUMNS); kullanmak gerekir ve örnekte olduğu gibi daha sonra columns() diyoruz.