我将如何编写 Zend DB 查询以从列 ID 中选择所有?
到目前为止,我已经尝试过:
public function getLatestUserID()
{
$ids = $this->select()
->where('id = ?');
return $ids;
}
但无济于事。
我将如何编写 Zend DB 查询以从列 ID 中选择所有?
到目前为止,我已经尝试过:
public function getLatestUserID()
{
$ids = $this->select()
->where('id = ?');
return $ids;
}
但无济于事。
您只想要id
列,
您未能调用执行命令。
尝试:
//assuming you are using a DbTable model
public function getLatestUserID()
{
$ids = $this->fetchAll('id');
return $ids;
}
我会这样做,因为我对所有内容都使用了 select() 对象:
public function getLatestUserID()
{
$select = $this->select();
//I'm not sure if $this will work in this contex but you can out the table name
$select->from(array($this), array('id'));
$ids = $this->fetchAll($select);
return $ids;
}
前两个示例应该只返回表的id
列,现在如果您真的想查询特定的id
:
public function getLatestUserID($id)
{
$select = $this->select();
$select->where('id = ?', $id);
//fetchAll() would still work here if we wanted multiple rows returned
//but fetchRow() for one row and fetchRowset() for multiple rows are probably
//more specific for this purpose.
$ids = $this->fetchRow($select);
return $ids;
}
确保包含 getLatestUserID 的类也扩展 Zend_Db_Table_Abstract :
$ids = $this->select()->where('id = ?');
不能工作,因为 where('id = ?'); 期望一个 id 值,例如where('id = ?', $id);
如果您想要的是最新插入的行的 ID,请使用:
$lastInsertId = $this->getAdapter()->lastInsertId();
(但是,如果您使用的是 oracle 数据库,这将不起作用,您应该使用$lastInsertId = $this->getAdapter()->lastSequenceId('USER_TABLE_SEQUENCE');
)