[英]php zend framework2 sql execute query returns scalar
我在zend Framework 2中执行查询
protected function getCityByZip($zip){
$adapter = $this->getServiceLocator()->get('myConn');
$sql = new Sql($adapter);
$select = $sql->select();
$select->from(array("cities" => "cities"))
->columns(array('cityName'))
->where(array("cityZip" => $zip));
$statement = $sql->prepareStatementForSqlObject($select);
$result = $statement->execute();
return $result;
}
我想做类似的事情
的ExecuteScalar();
并只获得一个值,而不是像我通过使用execute()获得的结果集
这怎么可能?
我不知道这是否是您要的内容,但是如果您希望函数getCityByZip($zip)
返回一个值,则可以执行以下操作:
protected function getCityByZip($zip){
$adapter = $this->getServiceLocator()->get('myConn');
$sql = new Sql($adapter);
$select = $sql->select();
$select->from(array("cities" => "cities"))
->columns(array('cityName'))
->where(array("cityZip" => $zip));
$statement = $sql->prepareStatementForSqlObject($select);
$resultSet = $statement->execute();
$current = $resultSet->current();
return $current->cityName;
}
编辑:
我认为您正在寻找的是zF1 DB Adapter
中的fetchOne fetchOne()
方法(请参阅此从结果集中获取单个标量 ),而不是ZF2中 。 在ZF1中,您可以执行以下操作:
$db->fetchOne('SELECT cityName FROM users WHERE cityZip='.$zip);
但是在ZF2中,等效功能需要多行代码作为上述功能。
希望这会有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.