繁体   English   中英

PHP的Zend Framework2的SQL执行查询返回标量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM