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

Duda Transacciones en zend

Estas en el tema de Duda Transacciones en zend en el foro de Zend en Foros del Web. Hola buenos dias. tengo unos meses en zend framework y aun me falta entender bien a zend. aqui mi pregunta. tengo creado 3 archivos Zend_Db_Table_Abstract ...
  #1 (permalink)  
Antiguo 14/04/2011, 13:46
Avatar de juanca2626  
Fecha de Ingreso: junio-2004
Ubicación: Lima-Peru
Mensajes: 67
Antigüedad: 20 años, 6 meses
Puntos: 0
Duda Transacciones en zend

Hola buenos dias. tengo unos meses en zend framework y aun me falta entender bien a zend.

aqui mi pregunta. tengo creado 3 archivos Zend_Db_Table_Abstract claro las 3 son tablas distintas, las 3 tablas son de tipo InnoDB. y tengo un proceso en la cual uso los 3 archivos para actualizar cada tabla con diferentes valores. lo que quiero haces es poder usar transacciones para que si falle en un proceso pues no guarde nada.


seria algo asi .

beginTransaction();

try {
instancio Db_Table 1 y ejecuto insert() .
instancion Db_Table 2 y ejecuto update().
instancion Db_Table 3 y ejecuto insert().
commit()
}catch(Exception $e) {
rollBack();
echo $e->getMessage();
}

segun los ejemplos que e visto uno en esta misma pagina

public function addLibro($titulo, $autor)
{
$this->getAdapter()->beginTransaction();
try {
$data = array('titulo' => $titulo, 'autor' => $autor);
$this->insert($data);
$this->getAdapter()->commit()
}catch(Exception $e) {
$this->getAdapter()->rollBack();
echo $e->getMessage();
}
}

el Db_Table, tiene getAdapte y ahi podrias acceder a beginTransaction, pero veo que esto lo hace en la misma clase. en este caso lo quiero hacer afuera ya que para la tranccion necesitaria el objeto DB , ¿como podria quedar mis lineas de codigo para que pueda hacer esto ?. toy buscando por todos lados la ayuda y no logro entender como hacerlo.


e intentado hacer esto, disculpen si es una estupides pero aun no tengo experiencia con zend :(

$table = new Application_Model_DbTable_Primero();
$db = $table->getAdapter(); // supongo que aqui obtengo el objeto DB y con esto seria suficiente para poder trabajar las transacciones con mis demas objetos o estoy equivocado ??
$db->beginTransacction(); // aqui iniciaria mi transaccion y ya tendria mis
$db->commit() y $db->rollBack();

pero cuando ejecuto esto mi tira un error.

Fatal error: Call to undefined method Zend_Db_Adapter_Pdo_Mysql::beginTransacction() in C:\xampp\htdocs\server-hasso\application\controllers\PrimeroController.ph p on line 44

les agradecere cualquier ayuda
  #2 (permalink)  
Antiguo 14/04/2011, 13:50
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 11 meses
Puntos: 845
Respuesta: Duda Transacciones en zend

mmmm tenes un typo, no sera eso ?, beginTransacction, cuando deberia ser beginTransaction.
__________________
http://es.phptherightway.com/
thats us riders :)
  #3 (permalink)  
Antiguo 14/04/2011, 14:28
Avatar de juanca2626  
Fecha de Ingreso: junio-2004
Ubicación: Lima-Peru
Mensajes: 67
Antigüedad: 20 años, 6 meses
Puntos: 0
Respuesta: Duda Transacciones en zend

buscando mas info encontre esto.

$db = Zend_Db_Table_Abstract::getDefaultAdapter();
$db->beginTransaction();

y al parecer me va muy bien. , si alguien me puede dar mas alcance o si esta correcto esto se los agradecere.
  #4 (permalink)  
Antiguo 14/04/2011, 14:30
Avatar de juanca2626  
Fecha de Ingreso: junio-2004
Ubicación: Lima-Peru
Mensajes: 67
Antigüedad: 20 años, 6 meses
Puntos: 0
Respuesta: Duda Transacciones en zend

Cita:
Iniciado por masterpuppet Ver Mensaje
mmmm tenes un typo, no sera eso ?, beginTransacction, cuando deberia ser beginTransaction.
mmmm creo que tambien fue eso no ?? gracias.

Etiquetas: frameworks-y-php-orientado-a-objetos, transacciones
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 14:26.