不使用列,并选择一切

dan*_*iel 7 php zend-framework zend-db

我有以下代码

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

但是,当我运行它时,选择整行,而不仅仅是我想要的列.这是__toString的输出

SELECT `store_details`.*, `store_details`.`store_name` 
FROM `store_details` WHERE (store_details.store_id=8)
Run Code Online (Sandbox Code Playgroud)

有帮助吗?

kar*_*m79 10

columns()方法用于现有的fromjoin 添加列.构建查询的正确方法是:

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

您需要将所需的列指定为from()方法的第二个参数,如果它只是一个列,则指定为字符串,或者指定为多个列的数组.来自Zend_Db_Select docs:

在from()方法的第二个参数中,您可以指定要从相应表中选择的列.如果未指定列,则默认为"*",即"所有列"的SQL通配符.

您可以在简单的字符串数组中列出列,也可以列列名称与列名称的关联映射.如果只有一列要查询,并且不需要指定列别名,则可以将其列为纯字符串而不是数组.