Foros del Web » Programando para Internet » PHP »

controlar transacciones en mysql desde PHP

Estas en el tema de controlar transacciones en mysql desde PHP en el foro de PHP en Foros del Web. Hola amigos, me he enterado recientemente que con las nuevas versiones de MySQL se pueden controlar las transacciones para acceder a una BD. Desde el ...
  #1 (permalink)  
Antiguo 08/01/2004, 07:59
Avatar de puchitol  
Fecha de Ingreso: diciembre-2003
Ubicación: ELCHE
Mensajes: 322
Antigüedad: 20 años, 4 meses
Puntos: 0
controlar transacciones en mysql desde PHP

Hola amigos,
me he enterado recientemente que con las nuevas versiones de
MySQL se pueden controlar las transacciones para acceder a una
BD. Desde el shell (prompt del servidor Mysql) si que me hago una idea de como controlar o usar los comandos COMMIT y ROLLBACK (encerrando las sentencias que deseo utilizar entre bloques BEGIN y END), pero la duda me surge cuando quiero hacer
esto mismo pero ejecutandolo desde PHP, no se si me explico... Si
deseo ejecutar varias sentencias sobre una BD y quiero controlar que se ejecuten TODAS correctamente y hacer COMMIT, o si falla alguna hacer ROLLBACK, esto se poria aplicar desde PHP?

Si me pudierais poner un pequeño ejemplo de script de PHP lo agradeceria mucho.
Imaginemos por ejemplo, que tenemos una BD con una unica tabla llamada tabla1 y que tiene un unico campo id (que es numerico y ademas clave primaria)

A ver si me podeis ayudar,ok?

Muchas gracias...
  #2 (permalink)  
Antiguo 08/01/2004, 08:16
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Nunca he usado transacciones, pero por lo que pone en los comentarios de los usuarios en www.php.net/mysql , esas palabras serian consultas, y como tal se tendrian que llamar con un mysql_query() para cada una:
Código PHP:
mysql_query("BEGIN");
if (
mysql_query("DELETE * ...")) {
  
mysql_query("COMMIT");
} else {
  
mysql_query("ROLLBACK");

O por lo menos eso deduzco de lo que pone en el manual.

Suerte.

PD: Vuelvo a recordar que no lo he probado. Si te sirve, comentalo.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 08/01/2004, 08:16
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cuando tu ejecutas un comando en la "shell" de Msyql:

mysql > ... comandos

es lo mismo que si en PHP ejecutas una consulta SQL vía:

mysql_query()

Es decir . .usa la sintax SQL adecuada tal como lo haces ya en tus habituales "SELECT .. INSERT .. UPDATE .. etc" .. Las instrucciones que mencionas siguen siendo SQL.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 09/01/2004, 03:19
Avatar de puchitol  
Fecha de Ingreso: diciembre-2003
Ubicación: ELCHE
Mensajes: 322
Antigüedad: 20 años, 4 meses
Puntos: 0
Muchas gracias a los dos, la verdad es que lo que decis es bastante logico. Intentare probarlo...

Un saludo y otra vez gracias.
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 13:17.