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:
------------------------------------------"""""----------------------------------------------------
posteriormente voy a mis modelos con el siguiente codigo
ModeloA.php
----------------------------------------------------###########_--------------------------------------
ModeloB.php
_---------------------------------------------------------#####################----------------------------
y el ModeloC.php
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
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


0