Foros del Web » Programando para Internet » PHP »

Exclusion mutua PHP acceso a MySQL

Estas en el tema de Exclusion mutua PHP acceso a MySQL en el foro de PHP en Foros del Web. Hola a todos, Estoy creando una aplicación web en la cual necesito ejecutar una consulta y posterior modificación de un dato todo ello en exclusión ...
  #1 (permalink)  
Antiguo 15/01/2012, 11:07
 
Fecha de Ingreso: agosto-2008
Mensajes: 96
Antigüedad: 12 años, 10 meses
Puntos: 3
Exclusion mutua PHP acceso a MySQL

Hola a todos,
Estoy creando una aplicación web en la cual necesito ejecutar una consulta y posterior modificación de un dato todo ello en exclusión mutua dentro de una región crítica, ya que si el dato tiene un valor determinado la web realiza una acción u otra.
He probado con semaforos sem_get y de más funciones pero creo que mi interprete de PHP no es compatible ya que me da el siguiente error

Fatal error: Call to undefined function: sem_get() in /ruta/hacia/archivo.php on line N

Y no puedo cambiar el interprete, ya que se trata de un servidor tipo hostalia, miarroba etc que ya tienen un servidor por defecto el cual no podemos nosotros cambiar.

Muchas Gracias de ante mano y Saludos a todos.
  #2 (permalink)  
Antiguo 16/01/2012, 07:06
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 10 años, 9 meses
Puntos: 331
Respuesta: Exclusion mutua PHP acceso a MySQL

Hola AdRii, me parece que primero tendrías que explicar "exclusión mutua dentro de una región crítica". Nosotros no tenemos ese libro.
Saludos,
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 17/01/2012, 17:23
 
Fecha de Ingreso: agosto-2008
Mensajes: 96
Antigüedad: 12 años, 10 meses
Puntos: 3
Respuesta: Exclusion mutua PHP acceso a MySQL

Pues con "Exclusión mutua en region critica" me refiero a que tengo un pedazo de mi código en PHP que hace una consulta a un elemento de una base de datos mysql y que modifica ese dato en función de su valor, al ser una aplicación web un cliente A puede intentar modificar el dato, mientras un cliente B lo lee, con lo cual quiero hacer la consulta y modificación del valor en Exclusion mutua, y a este pedazo de código se le llama region critica.

Por ejemplo: tenemos cliente A y cliente B

Y el codigo:

...
...
Lee mysql(datoX);
if datoX == x
Escribe mysql(datoX = Y);

y puede suceder lo siguiente, ya que nosotros no controlamos el planificador del sistema operativo del servidor.

Cliente A -> Lee mysql(datoX); "Ya tenemos el valor del dato"
if datoX == x "Entra en el if, ya que el dato fue leido antes"

Cliente B -> Lee mysql(datoX); "Ya tenemos el valor del dato"
if datoX == x "Entra en el if, ya que el dato fue leido antes"
Escribe mysql(datoX = Y); "El dato esta modificado"

Cliente A -> Escribe mysql(datoX = Y); ¡¡¡¡ ERROR !!!!

Si suponemos que el dato afecta al usuario.. el cliente A modificaria el dato que esta siendo usado y antes modificado por B, teniendo B un valor erroneo del dato.

Etiquetas: mysql
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 00:41.