Hola.
Tengo una BBDD MySQL que manejo desde PHP. Tengo una consulta como la siguiente:
$consulta = "UPDATE tabla_de_tareas SET tarea_realizada='S' WHERE id='".$id."';";
$hacerConsulta = mysql_query($consulta, $conexion);
@mysql_free_result ($hacerConsulta);
La variable $conexion está definida más arriba en el listado. Por aho no hay problemas.
El problema es que no ejecuta la consulta, no cambia el valor del campo tarea_realizada. Sin embargo, le pongo un testigo, como aparece a continuación y no me da ningún error, así;
$consulta = "UPDATE tabla_de_tareas SET tarea_realizada='S' WHERE id='".$id."';";
$hacerConsulta = mysql_query($consulta, $conexion);
echo mysql_errno()." *** ".mysql_error()."<br />";
@mysql_free_result ($hacerConsulta);
Hago esto para ver que fallo hay, y el número de error es 0, es decir, no hay error.
Lo grave es que, a continuación, rescato el resultado, así;
$consulta = "SELECT tarea_realizada FROM tabla_de_tareas WHERE id='".$id."';";
$hacerConsulta = mysql_query($consulta, $conexion);
echo $consulta."<br />";
echo mysql_errno()." *** ".mysql_error()."<br />";
echo mysql_result($hacerConsulta, 0, "tarea_realizada")."<br />";
@mysql_free_result ($hacerConsulta);
y me muestra el resultado esperado, es decir, S.
Sin embargo, a continuación abro phpMyAdmin, miro la tabla, y conserva el valor N.
Es decir, no cambia el valor (a pesar de no dar ningún error), me dice que lo ha cambiado, mostrando el valor S, y luego resulta que NO lo ha cambiado. La tabla no se maneja en ninguna otra parte del script, con lo cual no es posible que se restaure el valor N original.
El campo es de tipo ENUM y admite los valores S y N.
Lo más grave es que lo pruebo varias veces seguidas y de vez en cuando SI cambia el valor, pero no cada x veces fijo, sino de forma aleatoria.
A Alguien le ha pasado alguna vez algo imposible como esto???