PHP - Ingeniero

   
Vista:

Ingeniero

Publicado por Vicente (1 intervención) el 09/08/2013 17:05:58
Hola colegas estoy trabajando en un proyectos de mi trabajo con ZEnd FW el problema es el siguiente

me tengo que conectar a tres bases de datos para eso configuro mi application.ini de la siguiente forma:

resources.multidb.db1.adapter = 'Pdo_Mysql'
resources.multidb.db1.host = '192.168.X.X'
resources.multidb.db1.username = 'XXXXXX'
resources.multidb.db1.password = 'myxxxxx'
resources.multidb.db1.dbname = 'contacto'
resources.multidb.db1.default = true


resources.multidb.db2.adapter = 'pdo_pgsql'
resources.multidb.db2.host = '192.168.Y.Y'
resources.multidb.db2.username = 'YYYYYY'
resources.multidb.db2.password = 'pgyyyyyy'
resources.multidb.db2.dbname = 'controlling'

resources.multidb.db3.adapter = 'pdo_pgsql'
resources.multidb.db3.host = '192.168.Z.Z'
resources.multidb.db3.username = 'ZZZZZZ'
resources.multidb.db3.password = 'pgzzzzz'
resources.multidb.db3.dbname = 'drupal'

En el modelo creo una carpeta llamada DbTable y en ella creo un archivo Abstract.php con el siguiente codigo:

1
2
3
4
5
6
7
8
9
10
11
require_once 'Zend/Db/Table/Abstract.php';
 
class Application_Model_DbTable_Abstract extends Zend_Db_Table_Abstract
{
	protected function _setupDatabaseAdapter(){
		$bootstrap = Zend_Controller_Front::getInstance()->getParam('bootstrap');
		$multidb = $bootstrap->getPluginResource('multidb');
		$this->_db = $multidb->getDb($this->_schema);
	}
 
}

------------------------------------------"""""----------------------------------------------------
posteriormente voy a mis modelos con el siguiente codigo

ModeloA.php

1
2
3
4
5
6
7
8
9
10
11
12
13
require_once 'Zend/Db/Table/Abstract.php';
class Application_Model_ModeloA extends Application_Model_DbTable_Abstract {
	/**
	 * The default table name
	 */
	protected $_schema = 'db1';
	protected $_name = ' departamento';
	protected $_primary = 'iddepartamento';
 
	public function getDepartamento(){
		return $this->fetchAll();
	}
}


----------------------------------------------------###########_--------------------------------------
ModeloB.php

1
2
3
4
5
6
7
8
9
10
11
12
13
require_once 'Zend/Db/Table/Abstract.php';
class Application_Model_ModeloB extends Application_Model_DbTable_Abstract {
	/**
	 * The default table name
	 */
	protected $_schema = 'db2';
	protected $_name = ' signall';
	protected $_primary = 'idsignall';
 
	public function getSignall(){
		return $this->fetchAll();
	}
}


_---------------------------------------------------------#####################----------------------------

y el ModeloC.php

1
2
3
4
5
6
7
8
9
10
11
12
13
require_once 'Zend/Db/Table/Abstract.php';
class Application_Model_ModeloC extends Application_Model_DbTable_Abstract {
	/**
	 * The default table name
	 */
	protected $_schema = 'db3';
	protected $_name = ' drupal_user';
	protected $_primary = 'iuid';
 
	public function getUser(){
		return $this->fetchAll();
	}
}


por supuesto despues hago la llamada desde el controller y lo paso a la vista...

El caso está en que todas las conexiones asociadas al servidor postgreSQL funcionan OK, mientras que la conexion a MySQL me responde "An error occurred Application error". Cabe destacar que traspole el codigo asociado a MySQL en otra aplicación hecha en ZendFW, que no usa multidb y me funciono correctamente

Entonces si alguien me puede ayudar lo agradecería enormemente


un saludo


Vicente
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder