Foros del Web » Programando para Internet » PHP »

llamar multidb en Modelo

Estas en el tema de llamar multidb en Modelo en el foro de PHP en Foros del Web. que tal? me ando rompiendo aun la cabeza con un monton de cosas de Zend. trato de llamar a mi segunda base de datos, pero ...
  #1 (permalink)  
Antiguo 04/10/2010, 08:40
 
Fecha de Ingreso: septiembre-2010
Mensajes: 113
Antigüedad: 13 años, 8 meses
Puntos: 4
llamar multidb en Modelo

que tal?

me ando rompiendo aun la cabeza con un monton de cosas de Zend.

trato de llamar a mi segunda base de datos, pero siempre trata de hacer la busqueda sobre la conexion por default

tengo

en mi config.ini
Código PHP:
multidb.db.adapter PDO_MYSQL
multidb
.db.config.host 192.*.*.*
multidb.db.config.username 
multidb.db.config.password 
multidb.db.config.dbname ACCESO
multidb
.db.config.profiler false;


multidb.db2.adapter PDO_MYSQL
multidb
.db2.config.host 192.*.*.*
multidb.db2.config.username 
multidb.db2.config.password 
multidb.db2.config.dbname CONSULTAS
multidb
.db2.config.profiler false
en mi index.php
Código PHP:
$db Zend_Db::factory $config->multidb->db->adapter$config->multidb->db->config->toArray () );
#$db->getConnection ()->exec ( "SET NAMES utf8" );
$db->setFetchMode Zend_Db::FETCH_OBJ );
$db->setProfiler(true);
Zend_Registry::set 'db'$db );


$db2 Zend_Db::factory $config->multidb->db2->adapter$config->multidb->db2->config->toArray () );
#$db->getConnection ()->exec ( "SET NAMES utf8" );
$db2->setFetchMode Zend_Db::FETCH_OBJ );
$db2->setProfiler(true);
Zend_Registry::set 'db2'$db2 ); 
y en mi modelo.php
Código PHP:
<?php

class Razonsocial extends Zend_Db_Table_Abstract 
{
    
    protected 
$_name 'empresas.razon_social';
    
    public function 
init()
    {
       
$this->_db2 Zend_Registry::get('db2');
    
    }
    
    
    public function 
getRazonsocialList()
    {
        
        
$select  $this->_db2->select()
                            ->
from($this->_name,
                            array(
'key' => 'id','value' => 'nombres'));
        
$result $this->getAdapter()->fetchAll($select);
        return 
$result;
    }
}
pero la busqueda siempre la trata de hacer sobre la base por default.

alguna idea??

mil gracias
  #2 (permalink)  
Antiguo 04/10/2010, 08:54
Avatar de _ssx  
Fecha de Ingreso: mayo-2003
Ubicación: mX
Mensajes: 683
Antigüedad: 21 años
Puntos: 60
Respuesta: llamar multidb en Modelo

Por encima creo que estas invocando al adaptador por default en tu fechtAll

Código PHP:
$result $this->getAdapter()->fetchAll($select); 
Creo que siguiendo tu lógica sería

Código PHP:
$result $this->_db2->fetchAll($select); 
__________________
Escribe tu código de forma que refleje, y saque a relucir,lo mejor de tu carácter personal
www.oscararzola.com/blog
Principios de un programador
  #3 (permalink)  
Antiguo 04/10/2010, 08:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: llamar multidb en Modelo

Al hacer $this->getAdapter() te va a regresar siempre el adaptador por default, si quieres hacer la busqueda reemplaza eso por $this->_db2 y ya puedes hacer bien las búsquedas.

Saludos.
  #4 (permalink)  
Antiguo 04/10/2010, 09:05
 
Fecha de Ingreso: septiembre-2010
Mensajes: 113
Antigüedad: 13 años, 8 meses
Puntos: 4
Respuesta: llamar multidb en Modelo

como no estas en la NASA, o algo mejor???

o si lo estas??


mil gracias :D:D:D:D
  #5 (permalink)  
Antiguo 04/10/2010, 09:15
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: llamar multidb en Modelo

Ojo, solo un detalle, si tus modelos varian de distintas bases de datos no es recomendable que las extiendas de Zend_Db_Table_Abstract, mejor crea un modelo vacio y dentro usa los objetos que necesites, esa es la idea de un Data Mapper.

Saludos.
  #6 (permalink)  
Antiguo 04/10/2010, 09:33
 
Fecha de Ingreso: septiembre-2010
Mensajes: 113
Antigüedad: 13 años, 8 meses
Puntos: 4
Respuesta: llamar multidb en Modelo

mil gracias
_ssx
GatorV

Casi todo perfecto.

ahora tengo el sig Warning:

Warning: htmlspecialchars() expects parameter 1 to be string, object given in C:\xampp\php\PEAR\Zend\View\Abstract.php on line 848

:D:D
  #7 (permalink)  
Antiguo 04/10/2010, 09:57
 
Fecha de Ingreso: septiembre-2010
Mensajes: 113
Antigüedad: 13 años, 8 meses
Puntos: 4
Respuesta: llamar multidb en Modelo

sorry solo era cosa de procesarlo en pares

fetchPairs()


:D:D:D gracias nuevamente

Etiquetas: multidb, select, zend
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 08:29.