Foros del Web » Programando para Internet » PHP » Zend »

ZEND y MYSQL

Estas en el tema de ZEND y MYSQL en el foro de Zend en Foros del Web. Buenas, estoy intentando conectarme a una BD que tengo en MYSQL desde el ZEND y me da el siguiente error: Código PHP: Fatal error :  Uncaught exception  ...
  #1 (permalink)  
Antiguo 06/12/2010, 13:27
 
Fecha de Ingreso: enero-2003
Ubicación: Caracas
Mensajes: 439
Antigüedad: 21 años, 2 meses
Puntos: 0
ZEND y MYSQL

Buenas, estoy intentando conectarme a una BD que tengo en MYSQL desde el ZEND y me da el siguiente error:

Código PHP:
Fatal errorUncaught exception 'Zend_Db_Exception' with message 'Adapter name must be specified in a string' in C:ZF111libraryZendDb.php:239 Stack trace#0 C:\servidor\web\cine\application\Bootstrap.php(11): Zend_Db::factory(Object(Zend_Config_Ini)) #1 C:\ZF111\library\Zend\Application\Bootstrap\BootstrapAbstract.php(666): Bootstrap->_initDatabase() #2 C:\ZF111\library\Zend\Application\Bootstrap\BootstrapAbstract.php(619): Zend_Application_Bootstrap_BootstrapAbstract->_executeResource('database') #3 C:\ZF111\library\Zend\Application\Bootstrap\BootstrapAbstract.php(583): Zend_Application_Bootstrap_BootstrapAbstract->_bootstrap(NULL) #4 C:\ZF111\library\Zend\Application.php(355): Zend_Application_Bootstrap_BootstrapAbstract->bootstrap(NULL) #5 C:\servidor\web\cine\public\index.php(25): Zend_Application->bootstrap() #6 {main} thrown in C:\ZF111\library\Zend\Db.php on line 239 
NOTA: Ya tengo habilitado la dll php_pdo_mysql.dll y la pdo_php.dll.

GRACIAS de antemano por su ayuda.
  #2 (permalink)  
Antiguo 06/12/2010, 13:57
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: ZEND y MYSQL

Deberías mostrar la configuración del adapter, este error es porque o bien en la configuración el adapter no es un string o esta vació.

Salu2.
  #3 (permalink)  
Antiguo 06/12/2010, 13:59
 
Fecha de Ingreso: enero-2003
Ubicación: Caracas
Mensajes: 439
Antigüedad: 21 años, 2 meses
Puntos: 0
Respuesta: ZEND y MYSQL

donde veo esa configuración soy nuevo disculpa mi ignorancia....
  #4 (permalink)  
Antiguo 06/12/2010, 14:03
 
Fecha de Ingreso: enero-2003
Ubicación: Caracas
Mensajes: 439
Antigüedad: 21 años, 2 meses
Puntos: 0
Respuesta: ZEND y MYSQL

hice esto en el aplication.ini coloque esto

resources.db.adapter = PDO_MYSQL
resources.db.params.host = localhost
resources.db.params.username = root
resources.db.params.password = postgres
resources.db.params.dbname = cine


y en el Bootstrap.php coloque esto

protected function _initDatabase() {

$config = new Zend_Config_Ini(
APPLICATION_PATH . '/configs/application.ini',
APPLICATION_ENV);
$database = Zend_Db::factory($config);
$database->getConnection();
Zend_Registry::set('ZendDb',$database);
Zend_Db_Table::setDefaultAdapter($database);
}
  #5 (permalink)  
Antiguo 06/12/2010, 14:35
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: ZEND y MYSQL

Que tal Fabian, te comento que los recursos de tu application.ini no es necesario inicializarlos Zend ya lo hace, si lo que quieres es guardar en el registro a "db" deberias hacer algo asi:

Código PHP:
Ver original
  1. protected function _initDatabase()
  2. {
  3.     $this->bootstrap('db');
  4.     $db = $this->getResource('db');
  5.     Zend_Registry::set('db', $db);
  6.     return $db;
  7. }

Te aconsejo, si estas recien empezando con Zend, que leas el QuickStart y Akrabat.

Salu2.
  #6 (permalink)  
Antiguo 07/12/2010, 08:56
 
Fecha de Ingreso: enero-2003
Ubicación: Caracas
Mensajes: 439
Antigüedad: 21 años, 2 meses
Puntos: 0
Respuesta: ZEND y MYSQL

gracias por sus respuestas, hago lo que me indicaste y me da el siguiente error:

Código PHP:

Fatal error
Uncaught exception 'Zend_Db_Adapter_Exception' with message 'The PDO extension is required for this adapter but the extension is not loaded' in C:ZF111libraryZendDbAdapterPdoAbstract.php:342 Stack trace#0 C:\ZF111\library\Zend\Db\Adapter\Abstract.php(247): Zend_Db_Adapter_Pdo_Abstract->setFetchMode(2) #1 C:\ZF111\library\Zend\Db.php(270): Zend_Db_Adapter_Abstract->__construct(Array) #2 C:\ZF111\library\Zend\Application\Resource\Db.php(142): Zend_Db::factory('PDO_MYSQL', Array) #3 C:\ZF111\library\Zend\Application\Resource\Db.php(154): Zend_Application_Resource_Db->getDbAdapter() #4 C:\ZF111\library\Zend\Application\Bootstrap\BootstrapAbstract.php(680): Zend_Application_Resource_Db->init() #5 C:\ZF111\library\Zend\Application\Bootstrap\BootstrapAbstract.php(623): Zend_Application_Bootstrap_BootstrapAbstract->_executeResource('db') #6 C:\ZF111\library\Zend\Application\Bootstrap\BootstrapAbstract.php(583): Zend_Application_Bootstrap_BootstrapAbstract->_bootstrap(NULL) #7 C:\ZF111\library\Zend\Applicatio in C:\ZF111\library\Zend\Db\Adapter\Pdo\Abstract.php on line 342 
  #7 (permalink)  
Antiguo 07/12/2010, 09:02
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: ZEND y MYSQL

Te esta diciendo que la extensión no esta cargada, deberías checkear en tu php.ini que PDO este habilitado,
busca dentro del .ini las extensiones php_pdo.so php_pdo_mysql.so(si estas en win son .dll) y descomentalas(quitar del inicio de la linea el ";"),
luego reinicia apache.

Salu2.
  #8 (permalink)  
Antiguo 07/12/2010, 09:03
 
Fecha de Ingreso: enero-2003
Ubicación: Caracas
Mensajes: 439
Antigüedad: 21 años, 2 meses
Puntos: 0
Respuesta: ZEND y MYSQL

ya estan descomentadas :(
  #9 (permalink)  
Antiguo 07/12/2010, 09:09
 
Fecha de Ingreso: enero-2003
Ubicación: Caracas
Mensajes: 439
Antigüedad: 21 años, 2 meses
Puntos: 0
Respuesta: ZEND y MYSQL

sabe ejecute el siguiente comando zf configure db-adapter y me dio el siguiente error:

PHP WARINING : PHPSTARTUP: PDO: unabled to initialize module
  #10 (permalink)  
Antiguo 07/12/2010, 09:09
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: ZEND y MYSQL

Create un phpinfo a ver si realmente esta cargado.
  #11 (permalink)  
Antiguo 07/12/2010, 09:17
 
Fecha de Ingreso: enero-2003
Ubicación: Caracas
Mensajes: 439
Antigüedad: 21 años, 2 meses
Puntos: 0
Respuesta: ZEND y MYSQL

en el php.ini active las extensiones pero en el phpinfo() no aprecen cargadas, me aparece cargado es el odbc y mysql normal.
  #12 (permalink)  
Antiguo 07/12/2010, 09:19
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: ZEND y MYSQL

Checkea en el phpinfo que php.ini se esta cargando, deberia mostrarte la ruta al .ini activo.
  #13 (permalink)  
Antiguo 07/12/2010, 09:24
 
Fecha de Ingreso: enero-2003
Ubicación: Caracas
Mensajes: 439
Antigüedad: 21 años, 2 meses
Puntos: 0
Respuesta: ZEND y MYSQL

hice una conexion a PDO fuera de zend y me da el siguiente error : Fatal error: Class 'PDO' not found in C:\servidor\web\index.php on line 16

la ruta del php.ini es la siguiente:

Configuration File (php.ini) Path C:\WINDOWS
Loaded Configuration File C:\WINDOWS\php.ini
  #14 (permalink)  
Antiguo 07/12/2010, 09:30
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: ZEND y MYSQL

Ya reiniciaste tu servidor web despues de hacer los cambios para que se vuelva a cargar el php.ini?

Saludos.
  #15 (permalink)  
Antiguo 07/12/2010, 09:31
 
Fecha de Ingreso: enero-2003
Ubicación: Caracas
Mensajes: 439
Antigüedad: 21 años, 2 meses
Puntos: 0
Respuesta: ZEND y MYSQL

si ya lo he reiniciado y nada.
  #16 (permalink)  
Antiguo 07/12/2010, 09:35
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: ZEND y MYSQL

las librerias estan en la carpeta /ext de php?
  #17 (permalink)  
Antiguo 07/12/2010, 09:39
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: ZEND y MYSQL

y si estas modificando ese php.ini?
  #18 (permalink)  
Antiguo 07/12/2010, 09:43
 
Fecha de Ingreso: enero-2003
Ubicación: Caracas
Mensajes: 439
Antigüedad: 21 años, 2 meses
Puntos: 0
Respuesta: ZEND y MYSQL

si las librarias estan en las carpetas y estoy modificando el php.ini indicado.
  #19 (permalink)  
Antiguo 07/12/2010, 09:49
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: ZEND y MYSQL

Muy raro, trata de descargar un paquete todo en uno como Xampp o Wamp estos tienen preinstalada la librería y trata con esos.
  #20 (permalink)  
Antiguo 07/12/2010, 09:51
 
Fecha de Ingreso: enero-2003
Ubicación: Caracas
Mensajes: 439
Antigüedad: 21 años, 2 meses
Puntos: 0
Respuesta: ZEND y MYSQL

ok voy a instalar uno de esos y le avisos y muchas gracias!
  #21 (permalink)  
Antiguo 07/12/2010, 15:36
 
Fecha de Ingreso: enero-2003
Ubicación: Caracas
Mensajes: 439
Antigüedad: 21 años, 2 meses
Puntos: 0
Respuesta: ZEND y MYSQL

hice la instalacion y todo funciono ahora estoy creando un modelo pero me da el siguiente mensaje : An error occurred Application error

tengo la estructura de la siguiente manera: models - DbTable - tblUsuario.php y dentro de este archivo tengo la clase asi:


class Application_Model_DbTable_tblUsuarios extends Zend_Db_Table_Abstract
{

protected $_name = 'tbl_usuarios';
protected $_primary = 'pk_usuario';


public function getLista() {

return $this->fetchAll();
}
}

y lo cargo del controlador asi:

public function indexAction()
{
$table = new Application_Model_DbTable_Prueba();
}
  #22 (permalink)  
Antiguo 07/12/2010, 16:58
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: ZEND y MYSQL

Deberias setear la variable de entorno APPLICATION_ENV, en tu .htaccess al inicio del mismo agrega esto(cuando pases a testing, staging o production lo editas por el correspondiente):

Código Apache:
Ver original
  1. SetEnv APPLICATION_ENV development

Con esto deberia mostrate información mas detallada sobre el error que tienes, igual te digo que tu clase deberia llamarse Application_Model_DbTable_Usuarios y el fichero dentro de models/DbTable Usuarios.php

Luego en tu controller puedes hacer algo asi:

Código PHP:
Ver original
  1. //IndexController.php
  2. class IndexController extends Zend_Controller_Action
  3. {
  4.    protected $_model;
  5.  
  6.    public function init()
  7.    {
  8.        $this->_model = new Application_Model_DbTable_Usuarios();
  9.    }
  10.  
  11.    public function indexAction()
  12.    {
  13.       $users = $this->_model->fetchAll();
  14.       $this->view->users = $users;
  15.    }
  16. }

Salu2.
  #23 (permalink)  
Antiguo 07/12/2010, 17:08
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: ZEND y MYSQL

Modifica el .htaccess dentro de tu carpeta public y asegurate que tenga la linea SetEnv development para poder ver el error completo.

Saludos.

Etiquetas: mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:07.