Foros del Web » Programando para Internet » PHP »

Manejo de Transacciones

Estas en el tema de Manejo de Transacciones en el foro de PHP en Foros del Web. Hola a todos, ¿existe alguna manera de manejar las trasacciones en una base de datos usando funciones en php...? Me explico: En ASP existe una ...
  #1 (permalink)  
Antiguo 15/09/2006, 10:47
 
Fecha de Ingreso: septiembre-2006
Mensajes: 21
Antigüedad: 17 años, 8 meses
Puntos: 0
Manejo de Transacciones

Hola a todos, ¿existe alguna manera de manejar las trasacciones en una base de datos usando funciones en php...?
Me explico:
En ASP existe una funcion llamada "BeginTrans" que abre una transaccion y todas las operaciones que se realicen a partir de ese momento no seran efectivas hasta tanto no cerremos la transaccion. Existe otra funcion asociada a ésta que se llama "CommitTrans" que cierra las transacciones haciendo efectivas todas las operaciones dentro de ella. Ademas existe una tercera funcion que se llama "RollBackTrans" que lo que hace es desacer todos los cambios efectuados en la base de datos desde el inicio de la transaccion.

El punto es que necesito poder manipular este tipo de transacciones en la bd para mostrar un mensaje al usuario que diga algo asi como: "Los cambios en la bd no se haran efectivos hasta tanto no presione el boton xxxxx"

Espero haberme explicado y como siempre gracias por su apoyo
  #2 (permalink)  
Antiguo 15/09/2006, 11:10
Avatar de turco_7  
Fecha de Ingreso: diciembre-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.044
Antigüedad: 20 años, 4 meses
Puntos: 19
Cita:
Iniciado por univ Ver Mensaje
Hola a todos, ¿existe alguna manera de manejar las trasacciones en una base de datos usando funciones en php...?
Me explico:
En ASP existe una funcion llamada "BeginTrans" que abre una transaccion y todas las operaciones que se realicen a partir de ese momento no seran efectivas hasta tanto no cerremos la transaccion. Existe otra funcion asociada a ésta que se llama "CommitTrans" que cierra las transacciones haciendo efectivas todas las operaciones dentro de ella. Ademas existe una tercera funcion que se llama "RollBackTrans" que lo que hace es desacer todos los cambios efectuados en la base de datos desde el inicio de la transaccion.

El punto es que necesito poder manipular este tipo de transacciones en la bd para mostrar un mensaje al usuario que diga algo asi como: "Los cambios en la bd no se haran efectivos hasta tanto no presione el boton xxxxx"

Espero haberme explicado y como siempre gracias por su apoyo

univ, las transacciones son funciones de las bases de datos no del lenguaje... mira yo uso las mismas transacciones en php al conectarme al SQLServer

ahora la pregunta .. con que motor te queres conectar ???

te recomiendo que leas la documentacion del motor de base de datos al cual te queres conectar...

saludos
__________________
Mi Blog http://turco7.blogspot.com
Usuario Linux : 404289
Mi última página: http://www.digitalservicecba.com.ar - Reparacion de camaras digitales!
  #3 (permalink)  
Antiguo 15/09/2006, 11:14
 
Fecha de Ingreso: agosto-2006
Mensajes: 11
Antigüedad: 17 años, 8 meses
Puntos: 0
Ejemplo De Transacciones

Yo uso con php base oracle y adodb estas instrucciones:

$conn->StartTrans();

$conn->Execute($sql);
$conn->Execute($Sql2);

$conn->CompleteTrans();

Espero que te sirva!!
Sandra
  #4 (permalink)  
Antiguo 15/09/2006, 11:19
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Como te han comentado .. lo primero que hay que tener presente es que la transacción la maneja el SQL y funciones del motor de BBDD que uses (por lo menos en PHP).

Cada RDBMS dispone de sus funciones para tal fin y desde PHP las "ejecutas" por las funciones de acceso a tu BBDD que corresponda, sea por funciones de PHP "nativas" (de tal extensión) o por uso de alguna capa de abstracción de BBDD (como ADOdb).

Primero concreta la BBDD que usas (no asumas que por qué usas PHP ya estás usando "Mysql") con versión incluida ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 15/09/2006, 14:01
 
Fecha de Ingreso: septiembre-2006
Mensajes: 21
Antigüedad: 17 años, 8 meses
Puntos: 0
Gracias por aclararme el tema de las transacciones y las bases de datos. Acabo de leer la documentacion de la base de datos que estoy usando (Mysql) y encontre como manejar las transacciones:

Para iniciar la transaccion
mysql_query("BEGIN",$conx)

Este codigo no lo he probado, solo me queda realizar las pruebas para los fines que quiero.

Una vez mas gracias por su ayuda...
  #6 (permalink)  
Antiguo 15/09/2006, 15:25
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Cita:
Iniciado por univ Ver Mensaje
Gracias por aclararme el tema de las transacciones y las bases de datos. Acabo de leer la documentacion de la base de datos que estoy usando (Mysql) y encontre como manejar las transacciones:

Para iniciar la transaccion
mysql_query("BEGIN",$conx)

Este codigo no lo he probado, solo me queda realizar las pruebas para los fines que quiero.

Una vez mas gracias por su ayuda...
Ojo con la versión de Mysql que uses y el tipo de tabla. Las transacciones sólo funcionan para tablas tipo Innodb (en Mysql 4.x e inferiores) y creo? que en Msyql 5.x se pueden hacer en todo tipo de tabla (MyISAM y otras) .. verificalo (en el foro de BBDD o en el manual de Mysql).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 17:48.