Conexión a la base de datos en Zend Framework 2

Para configurar la conexión a la base de datos en Zend Framework 2, tenemos que crear un fichero llamado local.php en el directrio config/autoload de la raíz del proyecto.
Zend nos da la posibilidad de conectarnos a diferentes tipos de sgbd, para ello incluye los siguientes drivers:

  • Mysqli: The ext/mysqli driver
  • Pgsql: The ext/pgsql driver
  • Sqlsrv: The ext/sqlsrv driver (from Microsoft)
  • Pdo_Mysql: MySQL through the PDO extension
  • Pdo_Sqlite: SQLite though the PDO extension
  • Pdo_Pgsql: PostgreSQL through the PDO extension

Creamos el fichero /config/autoload.php/local.php y lo configuramos con el driver que necesitemos

<?php
//Configuración para conectarnos a MySQL con MySQLi
return array(
    'service_manager'=>array(
        'factories'=>array(
            'Zend\Db\Adapter'=>'Zend\Db\Adapter\AdapterServiceFactory',
        ),
    ),
    'db'=>array(
        'driver' => 'Mysqli',
        'database' => 'pruebas',
        'username' => 'root',
        'password' => '',
        'charset'  => 'utf8',
        'options' => array('buffer_results' => true)
    ),        
);

El driver recomendado por PHP es PDO

<?php
//Configuración para conectarnos a MySQL con PDO
return array
(
    'service_manager'=>array(
        'factories'=>array(
            'Zend\Db\Adapter'=>'Zend\Db\Adapter\AdapterServiceFactory',
        ),
    ),
    'db'=>array(
        'username'=>'root',
        'password'=>'',
        'driver'=>'Pdo',
        'dsn'=>'mysql:dbname=pruebas;host:localhost',
        'driver_options'=>array(
            PDO::MYSQL_ATTR_INIT_COMMAND=>'SET NAMES \'utf8\''
        ),
    ),        
);

Más información:
http://framework.zend.com/manual/2.2/en/modules/zend.db.adapter.html

Victor

Autor: Victor

Desarrollador web - Formador online - Blogger

Compartir este post

5 Comentarios

  1. Saludos
    Exelente aporte

    Podrias mencionar como quedaria si se realiza conexion con Postgres ya que estoy intentando y no me sale.

    Responder
    • Usa su driver.

      Responder
  2. hola quisiera saber como puedo conectarme a varias bases de datos ya sea que mi aplicacion es un administrador de sitios y yo escoja a traves de un select la base de datos y al seleccionar le de siguiente y pueda hacer un crud de las tablas de esa base y de igual forma hacer un tipo de crud con las bases de datos y se muestren en el select, de antemano muchas gracias 🙂

    Responder
  3. Algún ejemplo de como conectarme a una BD Postgres? en la documentación oficial no hay un ejemplo, he intentado de esta forma pero no funciona, algún consejo?
    return array
    (
    ‘service_manager’=>array(
    ‘factories’=>array(
    ‘Zend\Db\Adapter\Adapter’=>’Zend\Db\Adapter\AdapterServiceFactory’,
    ),
    ),
    ‘db’=>array(
    ‘username’=>’usuario’,
    ‘password’=>’password’,
    ‘driver’=>’Pdo’,
    ‘dsn’=>’pgsql:host=localhost;port=5432;dbname=mydb’,
    ),
    );

    Responder
    • Utiliza el driver de postgre, tendrás información de eso en la documentación oficial de ZF. Yo nunca he utilizado ese SGBD. Un saludo.

      Responder

Poner un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *