Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/10/2015, 12:05
Avatar de chronos682
chronos682
 
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 2 meses
Puntos: 69
Problema con cache mysql

Buen dìa a todos, me está ocurriendo algo que nunca me había pasado. Hago una consulta SELECT a la BD en mysql y me devuelve el valor correcto del campo, luego actualizo ese campo con otra consulta UPDATE y cuando vuelvo a consultar el mismo campo con la misma primera consulta SELECT en vez de mostrarme el nuevo dato me sigue mostrando el anterior, a pesar que en phpMyAdmin yo puedo comprobar que se actualizó el campo por el nuevo dato. Ya intenté utilizando SQL_NO_CACHE luego del SELECT, leí en otro sitio que al actualizar una tabla se borran todas las consultas alojadas en caché por lo cual actualicé un campo X de la tabla antes del SELECT pero tampoco funciona.

Este es el código que estoy utilizando:

Código PHP:
<?php
function GetLluvia($mysqli$user)
{
    
$sql "SELECT SQL_NO_CACHE Lluvia FROM usuarios WHERE ID={$user}";
    
$result $mysqli->query($sql) or die(mysqli_error());
    
$numrows $result->num_rows;
    if (
$numrows 0)
    {
        
$row $result->fetch_assoc();
        return 
$row['Lluvia'];
    }
}
function 
GuardarLluvia($mysqli$user,$svlluvia)
{
    
$sql "UPDATE usuarios SET Lluvia = '{$svlluvia}' WHERE ID={$user}";
    
$result $mysqli->query($sql) or die(mysqli_error());
    if (!
$result)                
    {
        echo 
"No se actualizo";
    }
}

$dblluvia=GetLluvia($mysqli,"1");
$gtlluvia=$_GET['lluvia'];

if (
$dblluvia != $gtlluvia)
{
    if (
$gtlluvia=='1')
    {
        
$text "Ha comenzado a llover.";
        
GuardarLluvia($mysqli$user,'1');
    }
    else
    {
        
$text "Ha dejado de llover.";
        
GuardarLluvia($mysqli$user,'0');
    }
}
?>
Se supone que si por la url se envía la variable lluvia y esta es diferente a la que está almacenada en la BD, debe actualizar el campo en la BD colocando el nuevo valor que llegó por GET y mostrar el mensaje correspondiente, el problema es que la siguiente vez que llega un dato por GET y consulta la BD, en vez de mostrar el nuevo dato sigue mostrando el anterior. No se si sea problema de programaciòn o de mysql por eso lo coloco aquí, si no es el sitio adecuado agradezco lo cambien al foro correspondiente.

Agradezco cualquier ayuda.
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]