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

LLamo a una tabla y zend me llama a otra.

Estas en el tema de LLamo a una tabla y zend me llama a otra. en el foro de Zend en Foros del Web. Hola amigos, estoy con un problema... a ver si me pueden ayudar. Estoy trabajando con 2 bases de datos y cuando llamo a la base ...
  #1 (permalink)  
Antiguo 21/10/2010, 16:21
 
Fecha de Ingreso: octubre-2009
Mensajes: 240
Antigüedad: 15 años, 1 mes
Puntos: 6
LLamo a una tabla y zend me llama a otra.

Hola amigos, estoy con un problema... a ver si me pueden ayudar.
Estoy trabajando con 2 bases de datos y cuando llamo a la base de datos que no es la default, la llama sin problemas pero me llama a una tabla de la otra base.

Esto tengo en el Boostrap para las dos bases
Código PHP:
Ver original
  1. protected function _initAdapterDb(){
  2.     $config = new Zend_Config_Ini(APPLICATION_PATH.'/configs/application.ini', 'Database');
  3.     $db = Zend_Db::factory($config->resources->db->adapter,$config->resources->db->params->toArray());
  4.     Zend_Db_Table::setDefaultAdapter($db);
  5.     Zend_Registry::set('db', $db);
  6.  
  7.  
  8.         //adaptador para la base lacomercial
  9.         $config2 = new Zend_Config_Ini(APPLICATION_PATH.'/configs/application.ini', 'Dosdatabase');
  10.     $dblac = Zend_Db::factory($config2->resources->db->adapter,$config2->resources->db->params->toArray());
  11.    
  12.     Zend_Registry::set('dblacomercial', $dblac);
  13. }

ESto tengo en el application.ini para configurar las dos bases:
Código PHP:
Ver original
  1. [Database]
  2. resources.db.adapter = "pdo_mysql"
  3. resources.db.params.host = "localhost"
  4. resources.db.params.username = "user"
  5. resources.db.params.password = "pass"
  6. resources.db.params.dbname = "baseuno"
  7. resources.db.isDefaultTableAdapter = true
  8.  
  9. [Dosdatabase]
  10. resources.db.adapter = "pdo_mysql"
  11. resources.db.params.host = "localhost"
  12. resources.db.params.username = "user"
  13. resources.db.params.password = "pass"
  14. resources.db.params.dbname = "lacomercial"
  15. ;resources.db.isDefaultTableAdapter = true

Aca tengo el modelo
Código PHP:
Ver original
  1. <?php
  2.  
  3. class Moduno_Model_Librovisitas extends Zend_Db_Table_Abstract
  4. {
  5. protected $_name = 'librovisitas';
  6. protected $_primary = 'id';
  7.  
  8. protected  $table;
  9. //protected $adapterdb;
  10.  
  11. public function init(){
  12.  
  13.  $db = Zend_Registry::get('dblacomercial');  //cambio de base de datos
  14.  $this->setDefaultAdapter($db);
  15.  
  16. }
  17.  
  18. function vertodoellibro(){
  19.  
  20.     $db = Zend_Db_Table_Abstract::getDefaultAdapter();
  21.    
  22.    $select ="select * from librovisitas";
  23.    $prima = $db->fetchAll($select);  
  24.    return $primaria;
  25.          
  26.         }
  27.        
  28.  
  29. }
  30.  
  31.  
  32. ?>

Este es el action donde hago el llamado:
Código PHP:
Ver original
  1. public function librovisitasAction(){
  2.  
  3.         $todoslosmensajes=new Moduno_Model_Librovisitas();
  4.         $this->view->todoellibro=$todoslosmensajes->vertodoellibro();
  5.     }

Pues me sale con este error:
Código PHP:
Ver original
  1. Zend_Db_Statement_Exception: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'lacomercial.autos' doesn't exist in C:\wamp\www\Zendf\libreriazend\library\Zend\Db\Statement\Pdo.php on line 234
Me dice que estoy llamando a la tabla "autos" cuando yo estoy claramente llamando a la tabla "librovisitas".
Aclaro que "Autos" es una tabla de la base default o sea no existe en esta base de datos.

Si alguien ve algun error o que me falta algo por favor avisar que no puedo dar en la tecla hace un buen rato.

Etiquetas: llama, php, tablas
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 07:19.