-1

如何在 Zend 框架中轻松实现查询?

4

6 回答 6

5

检查这个文件:

Zend 框架数据库快速入门 (PDF)

于 2008-12-23T04:36:18.920 回答
1

您可以使用doctrine2 Doctrine 项目。有一个与 ZF3 DoctrineModule兼容的模块。您可以使用 QueryBuilder 将查询的创建带到对象操作中。

于 2016-12-01T13:31:37.967 回答
0

使用 Zend_Db 并使用 Zend_Db 工厂方法创建一个 $db 对象,然后使用 Zend_Db_Select 类创建 SQL 语句并将 $select SQL 语句传递给 fetch* (fetchRow, fetchAll...) 方法。

于 2011-02-10T13:40:15.027 回答
0

您可以像这样使用 Zend Db Adapter 对象:

$sql = 'SELECT * FROM bugs WHERE bug_id = ?';

$result = $db->fetchAll($sql, 2);
于 2008-12-23T04:25:03.420 回答
0

1.配置:

配置/自动加载/dbAdapter.local.php

<?php
return array(
   'db' => array(
        'driver'   => 'Pdo',
        'dsn'      => 'mysql:dbname=name;host=localhost',
        'username' => 'root',
        'password' => 'root',    
   ),
   'service_manager' => array(
        'abstract_factories' => array(
            'Zend\Db\Adapter\AdapterAbstractServiceFactory',
        ),
    ),
);
  1. 执行:
public function testAction()
{
  $username = 'user';


  $sql       = "SELECT email FROM users WHERE username = ?";
  $statement = $this->getDbAdapter()->createStatement($sql, array($username));
  $result   = $statement->execute()->current();
}



protected function getDbAdapter()
{
    if($this->dbAdapter == null) {
        $this->dbAdapter = $this->getServiceLocator()->get('Zend\Db\Adapter\Adapter');
    }

    return $this->dbAdapter;
}
于 2016-05-20T18:41:51.083 回答
0

Zend 框架有 abstract_factories,它允许我们处理多个 DB 查询:

Zend\Db\Adapter\AdapterAbstractServiceFactory

  1. 需要设置服务管理器:

    'service_manager' => 数组('abstract_factories' => 数组('Zend\Db\Adapter\AdapterAbstractServiceFactory', ), ),

  2. 在 config/autoload/local.php 中配置适配器

    db' => 数组('适配器' => 数组(

        'database1' => array(
           'driver'         => 'Pdo',
           'dsn'             => 'mysql:dbname=userDB;host=localhost',
           'driver_options'  => array(
                PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''
            ),
        ),
    
        etc...
    ),
    

    ),

  3. 在 config/autoload/global.php 中配置适配器

    return array(
    'db' => array(
        'adapters' => array(
            'database1' => array(
            'username' => 'root',
            'password' => '',
            ),
        ),    
    ),
    

    );

  4. 呼叫适配器

    $dbmanager->get('database1');

  5. 在模型中使用

    use Zend\Db\TableGateway\AbstractTableGateway;
    use Zend\Db\Adapter\Adapter;
    
    class UserTable extends AbstractTableGateway
    {
        protected $table ='user';
    
    public function __invoke(Adapter $adapter)
    {
        $this->adapter = $adapter;
        $this->initialize();
    }
    
    public function fetchAll()
    {
        $resultSet = $this->select();
        return $resultSet->toArray();
    }
    

    }

于 2017-02-23T11:28:47.677 回答