PHP и Zend Framework - PullRequest
       3

PHP и Zend Framework

0 голосов
/ 23 декабря 2008

Как я могу легко реализовать запросы в Zend Framework?

Ответы [ 6 ]

5 голосов
/ 23 декабря 2008

Проверьте этот документ:

Быстрый запуск базы данных Zend Framework (PDF)

1 голос
/ 01 декабря 2016

Вы можете использовать доктрину2 Проект доктрины . Есть модуль, совместимый с ZF3 DoctrineModule . Вы можете использовать QueryBuilder, который приводит создание запроса к манипулированию объектом.

0 голосов
/ 23 февраля 2017

Zend Framework имеет abstract_factories, он позволяет нам обрабатывать несколько запросов к БД:

Zend \ Db \ адаптер \ AdapterAbstractServiceFactory

  1. Необходимо установить Service Manager:

    'service_manager' => array ( 'abstract_factories' => array ( 'Zend \ Db \ адаптер \ AdapterAbstractServiceFactory', ), ),

  2. Настройка адаптеров в config / autoload / local.php

    db '=> array ( 'adapters' => array (

        '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();
    }
    

    }

0 голосов
/ 20 мая 2016

1.Config:

конфиг / автозагрузки / 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;
}
0 голосов
/ 10 февраля 2011

Используйте Zend_Db и просто создайте объект $ db, используя фабричный метод Zend_Db, а затем создайте операторы SQL, используя класс Zend_Db_Select, и передайте оператор SQL $ select в методы fetch * (fetchRow, fetchAll ...).

0 голосов
/ 23 декабря 2008

Вы можете использовать объект Zend Db Adapter следующим образом:

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

$result = $db->fetchAll($sql, 2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...