Фреймворк PHP и Zend

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

Что спрашивать? Веб-сервис, база данных (mssql, mysql, sqlite, ...)?

UnkwnTech 23.12.2008 07:36

использование инфраструктуры MVC для запроса базы данных похоже на использование ракетной установки для уничтожения таракана. слишком. если ваш запрос к базе данных не является частью НАМНОГО более крупного проекта. но похоже, что это не так. прямой php было бы намного проще реализовать ИМХО

b_dubb 07.07.2011 19:31

После настройки каркасного элемента выполните следующие действия. framework.zend.com/manual/current/en/in-depth-guide/…

Gary 01.01.2016 13:26
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
3
500
6

Ответы 6

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

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

$result = $db->fetchAll($sql, 2);

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

Базы данных Zend Framework: краткое руководство(PDF)

Эта ссылка больше не работает. Посетите официальную страницу руководства: [framework.zend.com/manual/1.12/en/zend.db.select.html]

konradwww 06.05.2015 14:18

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

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;
}

Вы можете использовать doctrine2 Доктрина проекта. Есть модуль, совместимый с ZF3 ДоктринаМодуль. Вы можете использовать QueryBuilder, который позволяет создавать запросы к манипуляциям с объектами.

Я также очень рекомендую Doctrine. У него высокая кривая обучения, но как только вы овладеете им, вы сократите свою работу с БД на 75%. Он также интегрируется с большинством популярных фреймворков и стандартным PHP, поэтому вам не придется заново его изучать.

Bluebaron 20.05.2017 20:15

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

Zend \ Db \ Adapter \ AdapterAbstractServiceFactory

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

    '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-> получить ('база данных1');

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

    }

Другие вопросы по теме