Zend框架2 - 如何连接数据库并检索查询结果?

时间:2013-01-14 06:17:18

标签: php zend-framework2 zend-db zend-db-table

我有ZF2试过以下,但它没有给ZF1工作的任何查询结果,ZF2不起作用。 ZF2数据库适配器是否不完整,因为ZF2本身无法解决错误?原因文档说明这样做但它根本不起作用。 ZF2适配器是否可以工作?

TestController.php

<?php
namespace Application\Controller;
//namespace Application\Model;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
use Zend\Db\Adapter\Adapter;
use Zend\Debug\Debug;

class TestController extends AbstractActionController {

  public function indexAction() {
    $sql = "SELECT * FROM stackoverflow";
    $statement = $this->adapter->query($sql);
    $res =  $statement->execute();
    Debug::dump( $res );
    exit;
  }
}

Module.php

<?php
namespace Application;
use Zend\Mvc\ModuleRouteListener;
use Zend\Mvc\MvcEvent;
use Zend\Mvc\Router\Http;
class Module {

  public function getServiceConfiguration()
  {
      return array(
          'factories' => array(
              'adapter' =>  function($sm) {
                  $config = $sm->get('config');
                  $dbAdapter = new \Zend\Db\Adapter\Adapter($config['db']);
                  return $dbAdapter;
              }
          ),
      );
  }
}

global.php

<?php
return array(
//    'di' =>array(
//        'instance' =>array(
//            'PDO' => array(
//                'parameters' => array(
//                  'dsn'            => 'mysql:dbname=mydb;host=localhost',
//                  'username'       => 'mydb',
//                  'password'       => '',
//                )
//            ),
//            
//            'User' => array(
//                'parameters' => array(
//                    'pdo' => 'PDO'
//                )
//            )
//        )
//    ),


    'db' => array(
      'driver' => 'Pdo',
      'dsn'            => 'mysql:dbname=mydb;host=localhost',
      'username'       => 'mydb',
      'password'       => '',
//      'driver_options' => array(
//          PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''
//      ),
    ),


//    'service_manager' => array(
//        'factories' => array(
//            'Zend\Db\Adapter\Adapter' => 'Zend\Db\Adapter\AdapterServiceFactory',
//        ),
//    ),
);

2 个答案:

答案 0 :(得分:3)

$res是结果集。您可以阅读有关如何从ZF manual中的结果集中提取数据的更多信息。

答案 1 :(得分:1)

//我自己刚开始使用zf2,但好像你可以检索这样的数据。

公共函数fetchAll()  {

 $resultSet = $this->tableGateway->select();

 return $resultSet;

}