如何在ZEND 2中执行查询并从结果中获取数据?

Mar*_*san 0 zend-framework2

我想以旧方式在zend2中执行查询.我想编写查询并执行它.我不想使用函数save(),update(),delete().这是我的模特:

    namespace Application\Model;

   use Zend\Db\Adapter\Adapter;
use Zend\Db\TableGateway\AbstractTableGateway;
use Zend\Db\Sql\Select;
use Zend\Db\Sql\Sql;
use Zend\Db\Adapter\Driver\ResultInterface;
use Zend\Db\ResultSet\ResultSet;

    class UsersTable extends AbstractTableGateway {


        public function __construct(Adapter $adapter) {
            $this->adapter = $adapter;
        }

        public function fetchAll() {

            $results  = $this->adapter->query("SELECT * FROM users");
            return $results->execute();
        }

    }
Run Code Online (Sandbox Code Playgroud)

在fetchAll函数中,我想执行查询"select*from users".我怎样才能做到这一点 ?结果是:

    object(Zend\Db\Adapter\Driver\Pdo\Result)#243 (8) {
  ["statementMode":protected]=>
  string(7) "forward"
  ["resource":protected]=>
  object(PDOStatement)#241 (1) {
    ["queryString"]=>
    string(19) "SELECT * FROM users"
  }
  ["options":protected]=>
  NULL
  ["currentComplete":protected]=>
  bool(false)
  ["currentData":protected]=>
  NULL
  ["position":protected]=>
  int(-1)
  ["generatedValue":protected]=>
  string(1) "0"
  ["rowCount":protected]=>
  NULL
}
Run Code Online (Sandbox Code Playgroud)

fon*_*ini 8

您可以执行以下操作,而不是循环结果集并调用next().

public function fetchAll() {
    $results  = $this->adapter->query("SELECT * FROM users");
    $result = $results->execute();
    return $result->getResource()->fetchAll();
}
Run Code Online (Sandbox Code Playgroud)

该函数将数据作为数组返回.