Si estás obteniendo este error, se puede deber a 2 cosas,
1- Que el texto ingresado se muy grande para el tipo de dato de la col.
2- (este es el más probable) que la codificación de caracteres de tu motor de base de datos, no admita caracteres como eñe, vocales acentuadas, o caracteres raros como ! , < , etc etc
Si el error es el (2) debes cambiar en el MySQL el juego de caracteres a UTF-8. Sinembargo algunos servidores compartidos, no lo permiten, por lo que una solución efectiva y alternativa a este problema, es utilizar las funciones nativas de PHP base64_encode( ... ); y base64_decode( ... );
De manera que al guardar a la base de datos los campos del form ingresados primero, le apliques base64_encode( ).
La función base64_encode( ) produce un string alfanumerico del mensaje que recibe. Este string alfanumerico encriptado, puede ser grabado correctamente en la BBDD. Luego decodificando por base64_encode( .. ) para mostrar el mensaje original, que puede contener cualquier caracter ascii.
Ejemplo:
$var = base64_encode($_POST[‘campo_texto’]);
/** guardado en base de datos **/
/** carga dato de base de datos y mostrado **/
$data_row = mysql_fetch_assoc($result);
echo base64_decode($data_row['campo']);
Esta es una solución posible, no la única. Pero sin muchas perdidas de tiempo, me dió resultado.
Sin comentarios a “Data too long for column … mysql error”
Por favor espera
Deja una respuesta