我是ZF2的新手。 我该如何编写这样的查询?
SELECT * FROM users WHERE id = 1 AND status != 2
我的代码型号:
public function getUser($where = array())
{
$select = $this->sql->select();
$select->from(self::TABLE);
$select->where($where);
$select->order('name ASC');
return $statement->execute();
}
我正在使用:Zend \ Db \ Sql
感谢。
答案 0 :(得分:1)
查看文档here。
因此,$where
也可以是string
或Closure
。
在你的情况下称之为:
$user = $object->getUser('status != 2');
哦,我错过了第一个条件:
$user = $object->getUser(array('id = 1', 'status != 2'));
编辑:
您可以确保保留= array()
默认值。我不知道为什么,但我把它与类型暗示混淆了。 (array $where)
答案 1 :(得分:1)
public function getUser( where = array() ) {
$select = $this->sql->select();
$select->from(self::TABLE);
$select
->where->nest()
->equalTo( 'id' => where['id'] )
->or
->notEqualTo( 'status' => where['status'] )
->unnest();
$select->order('name ASC');
return $statement->execute();
}
像这样使用:
getUser( array(
'id' => 1,
'where' => 2,
) );