Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Cakephp - transaccion, comit o rollback

Estas en el tema de Cakephp - transaccion, comit o rollback en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Estoy haciando mis primeros insert en cakephp y ahora tengo un problema, bah gracias a un error me surgió esta duda: Tengo 3 tabla: usuarios, ...
  #1 (permalink)  
Antiguo 29/03/2010, 13:30
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 14 años, 4 meses
Puntos: 65
Cakephp - transaccion, comit o rollback

Estoy haciando mis primeros insert en cakephp y ahora tengo un problema, bah gracias a un error me surgió esta duda:

Tengo 3 tabla:
usuarios, telefonos_usuarios, telefonos_inmobiliarias

el modelo de "usuario" puse una relación has many con las otras 2 tablas

Código PHP:
   var $hasMany = array(
                        
'TelefonosUsuario' => array(
                        
'className' => 'TelefonosUsuario',
                        
'foreignKey' => 'usuario_id'
                        
),
                        
'TelefonosInmobiliaria' => array(
                        
'className' => 'TelefonosInmobiliaria',
                        
'foreignKey' => 'usuario_id'
                        
)); 
Al cargar manualmente los datos en las 3 tablas me funciona bien el select, se puebla correctamente mi formulario y hace bien también el update, el tema es que para los campos de los teléfonos en el formulario los genero con un loop for porque tienen muchos teléfonos (eso lo trae bien) pero recien eliminé los datos para que haga un insert desde el controlador y como el array de teléfonos no tiene nada no tenia campos para poder rellenar, entonces en el controlador pregunté si el array de telefonos no es array le agrego ese array telefonos (asi aparece el campo en formulario), aparece el campo pero me confundi en el tema de indices, entonces al enviar para hacer el insert vi la consulta que generó de esta forma

INSERT INTO `telefonos_inmobiliarias` (`id`, `numero`) VALUES (Array, Array)
el error es que no conoce la columna Array

al comenzar la consulta cakephp me genera

-START TRANSACTION
-el insert de usuarios
-insert de telefonos_inmobiliarias
y el ROLLBACK

bien digo, hizo un rollback

pero cuando voy a la base de datos tenia el registro en la tabla clientes... ¿porque queda el registro de clientes si hace ROLLBACK ???

El error que tenía ya lo solucioné creando bien los indices del array pero me gustaría saber como hacer bien el rollback ya que yo no lo hago lo hace cakephp, uso el método saveAll

Me fuí a volver a repasar la doc. Me vengo a responder yo solo jeje
Cita:
Para que las transacciones funcionen correctamente en MySQL, tus tablas han de usar el mecanismo InnoDB. Recuerda que las tablas MyISAM no soportan transacciones.
ok no lo recordaba jaja

Última edición por Dany_s; 29/03/2010 a las 13:44

Etiquetas: cakephp, rollback, 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 11:12.