Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Alex_bro en 23 Febrero 2009, 15:59 pm



Título: [PHP + MYSQL] Incrementar valor de un INT
Publicado por: Alex_bro en 23 Febrero 2009, 15:59 pm
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.


Título: Re: [PHP + MYSQL] Incrementar valor de un INT
Publicado por: XafiloX en 23 Febrero 2009, 20:55 pm
Puedes utilizar esto:

Código:
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...


Título: Re: [PHP + MYSQL] Incrementar valor de un INT
Publicado por: Alex_bro en 28 Febrero 2009, 01:16 am
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:
Código:
UPDATE table SET valor = (valor+1.20) WHERE....