[PHP + MYSQL] Incrementar valor de un INT

Iniciado por Alex_bro, 23 Febrero 2009, 15:59 PM

0 Miembros y 1 Visitante están viendo este tema.

Alex_bro

Buenas,
Tengo una dudilla... estoy escribiendo un sistema de foros desde 0 (Que cuesta arriba se me está haciendo! Mas que nada por que cada dia hay mas lineas de codigo y eso me stresa jaja) y en una de las partes, tengo que incrementar en 1 o restarselo la cantidad de mensajes que tiene un cierto foro...
Para eso actualmente recojo el valor actual de los mensajes, le resto uno, y lo vuelvo a subir con un UPDATE.
Sé que todo eso se hace en cuestion de microsegundos, pero es posible que en los tiempos mas concurridos del foro al hacer 2 peticiones simultaneas se lien las operaciones... ? Vamos, que al momento de recojer el valor, otro lo incremente y yo haga el UPDATE con el valor erroneo.
Si fuera asi... Cual es la manera logica de hacer este tipo de operaciones?

Gracias.

XafiloX

Puedes utilizar esto:

UPDATE table SET valor = valor+1 WHERE....

Si tienes miedo a que algo se modifique mientras se ejecuta el codigo, puedes utilizar LOCK TABLES, aunque no te lo recomiendo...

Alex_bro

#2
Muchisimas gracias!
Usando esa buena tecnica de programacion me quito de encima bastantes lineas de codigo, y tambien bastantes accesos a la db...

Saludos!

EDITO:
Despues de muchos mareos de cabeza al incrementar decimales... Acuerdense de encerrar la operacion con parentesis!
Ejemplo:
UPDATE table SET valor = (valor+1.20) WHERE....