Zend framework2 如何在ZEND 2中执行查询并从结果中获取数据?
我想以一种旧的方式在zend2中执行查询。我想编写查询并执行它。我不想使用保存、更新、删除功能。 这是我的模型:Zend framework2 如何在ZEND 2中执行查询并从结果中获取数据?,zend-framework2,Zend Framework2,我想以一种旧的方式在zend2中执行查询。我想编写查询并执行它。我不想使用保存、更新、删除功能。 这是我的模型: 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\ResultIn
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();
}
}
在函数fetchAll中,我要执行查询,请从用户处选择*。我该怎么做?
其结果是:
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
}
您将创建一个数组
public function fetchAll() {
$stmt = $this->adapter->query('SELECT * FROM user');
$result = $stmt->execute();
if($result->count() > 0) {
$returnArr = array();
while ($result->valid()) {
$returnArr[] = $result->current();
$result->next();
}
if(count($returnArr) > 0) {
return $returnArr;
}
}
return FALSE;
}
或
您可以执行以下操作,而不是循环resultset并调用next:
public function fetchAll() {
$results = $this->adapter->query("SELECT * FROM users");
$result = $results->execute();
return $result->getResource()->fetchAll();
}
函数将以数组的形式返回数据。我想这是一个很难回答的问题:当前函数做什么?我只是不知道;我不明白为什么我需要它?你想要什么?此函数将表用户的内容作为数组提供给您。您可以通过执行以下操作来避免foreach循环:请参阅此处的最后一个答案:。使用这个答案会产生一个额外的循环,因此这不是最佳做法。fetchAll是一个PDO函数。在另一种情况下,它可能不存在!?
$result = $result->toArray();
public function fetchAll() {
$results = $this->adapter->query("SELECT * FROM users");
$result = $results->execute();
return $result->getResource()->fetchAll();
}