Ir al contenido


Foto

conexion a postgresql con Zend Framework 2


  • Por favor identifícate para responder
4 respuestas en este tema

#1 DarwinSanchez

DarwinSanchez

    Newbie

  • Miembros
  • Pip
  • 6 mensajes
  • LocationMachala Ecuador

Escrito 08 agosto 2014 - 01:35

Saludos y exito en sus trabajos

me dirijo a Ustedes con la finalidad de pedir ayuda con un problemita que tengo:

Estoy viendo los videos de El Maestro Cesar Cancino y pido ayuda lo que pasa es que necesito conectarme con postgresql y no logro conseguirlo he revisado la documentacion que tiene ZF2 y no logro la conexion, en el video muestra la siguiente conexion:


delphi
  1. return array
  2. (
  3.     'service_manager'=>array(
  4.         'factories'=>array(
  5.             'Zend\Db\Adapter'=>'Zend\Db\Adapter\AdapterServiceFactory',
  6.         ),
  7.     ),
  8.     'db'=>array(
  9.         'username'=>'root',
  10.         'password'=>'',
  11.         'driver'=>'Pdo',
  12.         'dsn'=>'mysql:dbname=prueba;host:localhost',
  13.         'driver_options'=>array(
  14.             PDO::MYSQL_ATTR_INIT_COMMAND=>'SET NAMES \'utf8\''
  15.         ),
  16.     ),       
  17. );


El inconveniente es que es para Mysql y yo necesito para postgresql como puedo hacer yo estoy intentando de la siguiente manera:



delphi
  1. $adapter=new Zend\Db\Adapter\Driver\Pgsql(array(
  2.   'driver'=>'pgsql',
  3.   'username'=>'postgres',
  4.   'database'=>'parqueo',
  5.   'password'=>'222222',
  6.   'port'=>'5432',
  7.   'hostmane'=>'localhost',
  8.   'charser'=>'utf8',
  9.      
  10. ));
  11. return $adapter;


Tal como enseña la documentacion
y no o logro, Espero me sepan entender.

mis sinceros agradecimientos


  • 0

#2 jdepaz

jdepaz

    Advanced Member

  • Miembros
  • PipPipPip
  • 264 mensajes
  • LocationMedellín Colombia

Escrito 09 agosto 2014 - 07:18

Hola


¿Algún error en específico?


Saludos
  • 0

#3 DarwinSanchez

DarwinSanchez

    Newbie

  • Miembros
  • Pip
  • 6 mensajes
  • LocationMachala Ecuador

Escrito 09 agosto 2014 - 10:09



delphi
  1. $this->dbAdapter=$this->getServiceLocator()->get('Zend\Db\Adapter');
  2.         var_dump($this->dbAdapter);


Esto me muestra al hacer un var_dum

object(Zend\Db\Adapter\Adapter)#237 (5) { ["driver":protected]=> object(Zend\Db\Adapter\Driver\Pdo\Pdo)#238 (4) { ["connection":protected]=> object(Zend\Db\Adapter\Driver\Pdo\Connection)#239 (7) { ["driver":protected]=> *RECURSION* ["profiler":protected]=> NULL ["driverName":protected]=> string(5) "pgsql" ["connectionParameters":protected]=> array(6) { ["driver"]=> string(9) "Pdo_pgsql" ["database"]=> string(7) "parqueo" ["username"]=> string(8) "postgres" ["password"]=> string(6) "222222" ["charset"]=> string(4) "utf8" ["port"]=> string(4) "5432" } ["resource":protected]=> NULL ["inTransaction":protected]=> bool(false) ["dsn":protected]=> NULL } ["statementPrototype":protected]=> object(Zend\Db\Adapter\Driver\Pdo\Statement)#240 (9) { ["pdo":protected]=> NULL ["profiler":protected]=> NULL ["driver":protected]=> *RECURSION* ["sql":protected]=> string(0) "" ["isQuery":protected]=> NULL ["parameterContainer":protected]=> NULL ["parametersBound":protected]=> bool(false) ["resource":protected]=> NULL ["isPrepared":protected]=> bool(false) } ["resultPrototype":protected]=> object(Zend\Db\Adapter\Driver\Pdo\Result)#241 (8) { ["statementMode":protected]=> string(7) "forward" ["resource":protected]=> NULL ["options":protected]=> NULL ["currentComplete":protected]=> bool(false) ["currentData":protected]=> NULL ["position":protected]=> int(-1) ["generatedValue":protected]=> NULL ["rowCount":protected]=> NULL } ["features":protected]=> array(0) { } } ["platform":protected]=> object(Zend\Db\Adapter\Platform\Postgresql)#242 (1) { ["resource":protected]=> object(Zend\Db\Adapter\Driver\Pdo\Pdo)#238 (4) { ["connection":protected]=> object(Zend\Db\Adapter\Driver\Pdo\Connection)#239 (7) { ["driver":protected]=> *RECURSION* ["profiler":protected]=> NULL ["driverName":protected]=> string(5) "pgsql" ["connectionParameters":protected]=> array(6) { ["driver"]=> string(9) "Pdo_pgsql" ["database"]=> string(7) "parqueo" ["username"]=> string(8) "postgres" ["password"]=> string(6) "222222" ["charset"]=> string(4) "utf8" ["port"]=> string(4) "5432" } ["resource":protected]=> NULL ["inTransaction":protected]=> bool(false) ["dsn":protected]=> NULL } ["statementPrototype":protected]=> object(Zend\Db\Adapter\Driver\Pdo\Statement)#240 (9) { ["pdo":protected]=> NULL ["profiler":protected]=> NULL ["driver":protected]=> *RECURSION* ["sql":protected]=> string(0) "" ["isQuery":protected]=> NULL ["parameterContainer":protected]=> NULL ["parametersBound":protected]=> bool(false) ["resource":protected]=> NULL ["isPrepared":protected]=> bool(false) } ["resultPrototype":protected]=> object(Zend\Db\Adapter\Driver\Pdo\Result)#241 (8) { ["statementMode":protected]=> string(7) "forward" ["resource":protected]=> NULL ["options":protected]=> NULL ["currentComplete":protected]=> bool(false) ["currentData":protected]=> NULL ["position":protected]=> int(-1) ["generatedValue":protected]=> NULL ["rowCount":protected]=> NULL } ["features":protected]=> array(0) { } } } ["profiler":protected]=> NULL ["queryResultSetPrototype":protected]=> object(Zend\Db\ResultSet\ResultSet)#243 (8) { ["allowedReturnTypes":protected]=> array(2) { [0]=> string(11) "arrayobject" [1]=> string(5) "array" } ["arrayObjectPrototype":protected]=> object(ArrayObject)#244 (1) { ["storage":"ArrayObject":private]=> array(0) { } } ["returnType":protected]=> string(11) "arrayobject" ["buffer":protected]=> NULL ["count":protected]=> NULL ["dataSource":protected]=> NULL ["fieldCount":protected]=> NULL ["position":protected]=> int(0) } ["lastPreparedStatement":protected]=> NULL }


Y al momento de insertar el siguiente codigo


delphi
  1. $result=$this->dbAdapter->query("select * from recaudador",Adapter::QUERY_MODE_EXECUTE);




me aparece

AN ERROR OCCURRED

AN ERROR OCCURRED DURING EXECUTION; PLEASE TRY AGAIN LATER.

ADDITIONAL INFORMATION:

Zend\Db\Adapter\Exception\RuntimeException

File:
C:\xampp\htdocs\parqueo\vendor\ZF2\library\Zend\Db\Adapter\Driver\Pdo\Connection.php:328
Message:
Connect Error: could not find driver
Stack trace:
#0 C:\xampp\htdocs\parqueo\vendor\ZF2\library\Zend\Db\Adapter\Driver\Pdo\Connection.php(428): Zend\Db\Adapter\Driver\Pdo\Connection->connect()
#1 C:\xampp\htdocs\parqueo\vendor\ZF2\library\Zend\Db\Adapter\Adapter.php(189): Zend\Db\Adapter\Driver\Pdo\Connection->execute('select * from r...')
#2 C:\xampp\htdocs\parqueo\module\Nuevo\src\Nuevo\Controller\FormularioController.php(91): Zend\Db\Adapter\Adapter->query('select * from r...', 'execute')
#3 C:\xampp\htdocs\parqueo\vendor\ZF2\library\Zend\Mvc\Controller\AbstractActionController.php(83): Nuevo\Controller\FormularioController->resultAction()
#4 [internal function]: Zend\Mvc\Controller\AbstractActionController->onDispatch(Object(Zend\Mvc\MvcEvent))
#5 C:\xampp\htdocs\parqueo\vendor\ZF2\library\Zend\EventManager\EventManager.php(468): call_user_func(Array, Object(Zend\Mvc\MvcEvent))
#6 C:\xampp\htdocs\parqueo\vendor\ZF2\library\Zend\EventManager\EventManager.php(207): Zend\EventManager\EventManager->triggerListeners('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))
#7 C:\xampp\htdocs\parqueo\vendor\ZF2\library\Zend\Mvc\Controller\AbstractController.php(117): Zend\EventManager\EventManager->trigger('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))
#8 C:\xampp\htdocs\parqueo\vendor\ZF2\library\Zend\Mvc\DispatchListener.php(114): Zend\Mvc\Controller\AbstractController->dispatch(Object(Zend\Http\PhpEnvironment\Request), Object(Zend\Http\PhpEnvironment\Response))
#9 [internal function]: Zend\Mvc\DispatchListener->onDispatch(Object(Zend\Mvc\MvcEvent))
#10 C:\xampp\htdocs\parqueo\vendor\ZF2\library\Zend\EventManager\EventManager.php(468): call_user_func(Array, Object(Zend\Mvc\MvcEvent))
#11 C:\xampp\htdocs\parqueo\vendor\ZF2\library\Zend\EventManager\EventManager.php(207): Zend\EventManager\EventManager->triggerListeners('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))
#12 C:\xampp\htdocs\parqueo\vendor\ZF2\library\Zend\Mvc\Application.php(313): Zend\EventManager\EventManager->trigger('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))
#13 C:\xampp\htdocs\parqueo\public\index.php(12): Zend\Mvc\Application->run()
#14 {main}



  • 0

#4 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 10 agosto 2014 - 08:47

Yo uso ADo para conectarme a postgres y funciona aceptablemente.

Saludos.
  • 0

#5 DarwinSanchez

DarwinSanchez

    Newbie

  • Miembros
  • Pip
  • 6 mensajes
  • LocationMachala Ecuador

Escrito 12 agosto 2014 - 11:14

Saludos  (y)

ya he resuelto el error después de investigar llegue a la respuesta en un foro.

La respuesta al problema reside en que el apache no reconoce el driver

Para resolver esto se debe:

ir al php.ini del xampp o wamp

y descomentar los extension=php_pdo_pgsql.dll
                              extension=php_pgsql.dll
y luego reiniciar los servicios de apache y listo el Zend Framework 2 esta lsito para conectarse con postgresql
Para realizar la conexion a postgresql
configurar el archivo local.php



delphi
  1. return array
  2. (
  3.     'service_manager'=>array(
  4.         'factories'=>array(
  5.             'Zend\Db\Adapter\Adapter'=>'Zend\Db\Adapter\AdapterServiceFactory',
  6.         ),
  7.     ),
  8.     'db'=>array(
  9.         'username'=>'usuario',
  10.         'password'=>'password',
  11.         'driver'=>'Pdo',
  12.         'dsn'=>'pgsql:host=localhost;port=5432;dbname=mydb',         
  13.     ),   
  14. );


para probar si la conexion esta echa en un Controller probar



delphi
  1.         $this->dbAdapter=$this->getServiceLocator()->get('Zend\Db\Adapter\Adapter');
  2.         $result=$this->dbAdapter->query("Select * from Tabla",Adapter::QUERY_MODE_EXECUTE);
  3.         $datos=$result->toArray();       
  4.         return new ViewModel(array('datos'=>$datos));

y en la vista:


delphi
  1. <?php  print_r($this->datos)  ?>




  • 0




IP.Board spam blocked by CleanTalk.