Esto es lo más extraño que me ha pasado. Tengo un array en php que lo guardo en un campo de la BD (Mysql). Para guardar el array uso serialize, tomo una parte del array (es un contador), aumento uno de los valores en 1 y lo guardo nuevamente. Todo bien, sólo que de vez en cuando cuando tiene que guardar el valor 1, guarda 2 o 3.
El código:
Código PHP :
$query = sprintf("SELECT c FROM cat WHERE id=%s",GetSQLValueString($rubro_actual, "int")); $sc = mysql_query($query, $zion) or die(mysql_error()); $row_sc = mysql_fetch_assoc($sc); // Tomo el valor y lo convierto a array $carray = unserialize($row_sc['c']); // selecciono la parte del array que quiero modificar if ($carray[$r] != "") { $carray[$r]++; } else { $carray[$r] = 1; } // lo convierto para guardarlo $c = serialize($carray); $update = sprintf("UPDATE cat SET c=%s WHERE id=%s",GetSQLValueString($c, "text"),GetSQLValueString($rubro_actual, "int")); $ok_update = mysql_query($update, $zion) or die(mysql_error()); echo $c;
Acá la parte extraña: Todo aparentemente funciona bien, el último echo, que va después del update, muestra la cadena de forma correcta, pero al revisar en la BD, si el valor era 1, aparece como 2 o a veces 3. Entonces, php envió la información bien, pero mysql modificó el valor...¿?
Saludos!
Javier