elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Commit "seguro" en MySQL
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Commit "seguro" en MySQL  (Leído 3,774 veces)
llamamecomoquieras

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Commit "seguro" en MySQL
« en: 28 Enero 2009, 01:16 am »

Holita comunidad.

Tengo un problema con un editado de un valor en una base de datos cutre. La cuestion es la siguiente:

Se ejecuta un script en PHP el cual recibe un parámetro, el cual es, por ejemplo, un nombre de usuario, y se hace servir para saber cuantos puntos tiene. Una vez sabemos cuantos puntos tiene, le añadimos unos cuantos mas, y con un UPDATE dejamos patente a la DB que hemos querido cambiarlo. Para asegurarse, vuelve a leer los puntos para ver si realmente se ha efectuado el cambio.
Total, que en todos los casos se confirma la edición de ese valor, pero en algunos, ya dentro del juego, suele pasar que los cambios no se han efectuado.

Ya pensando a lo bruto con SQL he pensado si habría alguna manera de machacar bien el dato con un buen commit, vaya a ser que el juego en sí lo esté usando a la vez. Algun mutex u otra historia con transacciones?

Un saludo, y gracias por adelantado, como siempre :)


En línea

coquito_navideño

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Commit "seguro" en MySQL
« Respuesta #1 en: 14 Febrero 2009, 16:06 pm »

Evalua bien que tipo de QUERY estas utilizando para ejercer esto, si la tabla en cuestion de la que hablas esta en MyIsam todos los cambios seran automaticamente aplicados.. o mejor aun digamos que todo lo que hagas en una consulta sobre tablas Myisam sera un commit automatico aplicado sin poder echar hacia atras.

MySQL por defecto trae el autocommit activado (ya que asume que sus tablas seran Myisam) verifica si a lo mejor en tu caso que lo dudo pero mira ver, esta el autocommit desactivado :

mysql> show variables like 'autocommit%';

igual para activar autocommit puedes hacer :

set autocommit = 1;

Para desactivar

set autocommit = 0;

y asi desactivado poder utilizar el Rollback por si acaso.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines