Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Ubuntu server error al insertar cadena larga en mysql

Estas en el tema de Ubuntu server error al insertar cadena larga en mysql en el foro de Mysql en Foros del Web. Hola estoy usando una instalación nueva de ubuntu server 16.04.3 LTS, tengo problemas a la hora de insertar un string en mysql, creo que necesita ...
  #1 (permalink)  
Antiguo 29/01/2018, 12:16
 
Fecha de Ingreso: abril-2015
Ubicación: Murcia
Mensajes: 12
Antigüedad: 9 años
Puntos: 0
Ubuntu server error al insertar cadena larga en mysql

Hola estoy usando una instalación nueva de ubuntu server 16.04.3 LTS, tengo problemas a la hora de insertar un string en mysql, creo que necesita configuración y yo lo tengo por default.

El caso es que cuando envío un string por $_POST de más de 164 caracteres el fichero recibe la cadena pero mysqli no la inserta y me aparece este error:
Warning: mysqli_error() expects exactly 1 parameter, 0 given

Cuando envío una cadena corta de menos de 164 caracteres la inserción a la base de datos se cumple perfectamente... supongo que será algún ajuste de seguridad en Msql.

A ver si alguien puede ayudarme, gracias de antemano.

Saludos y gracias!
  #2 (permalink)  
Antiguo 29/01/2018, 12:26
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Ubuntu server error al insertar cadena larga en mysql

de que tamaño es el campo de la base de datos?
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 29/01/2018, 12:53
 
Fecha de Ingreso: abril-2015
Ubicación: Murcia
Mensajes: 12
Antigüedad: 9 años
Puntos: 0
Respuesta: Ubuntu server error al insertar cadena larga en mysql

Cita:
Iniciado por Libras Ver Mensaje
de que tamaño es el campo de la base de datos?
Es un type text sin tamaño predefinido y ademas eh probado a ponerlo en NULL pero nada, no se inserta
  #4 (permalink)  
Antiguo 29/01/2018, 16:10
 
Fecha de Ingreso: abril-2015
Ubicación: Murcia
Mensajes: 12
Antigüedad: 9 años
Puntos: 0
Respuesta: Ubuntu server error al insertar cadena larga en mysql

ya lo tengo! resulta que en la base de datos hay un campo para el texto del posts y otro campo con longitud de caracteres 165 (justo donde dá el error) que guarda los primeros 165 caracteres del texto del post como descripción para usar en el meta-descripction.

lo suyo es que la descripción se corte automáticamente al llegar al caracter 165 pero en este caso en vez de cortarse da error de mysql, me gustaría poder desactivar ésto y ya eh probado con el display_error=Off pero no se puede.

saludos
  #5 (permalink)  
Antiguo 29/01/2018, 16:25
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Ubuntu server error al insertar cadena larga en mysql

Cita:
Iniciado por codzeus Ver Mensaje
lo suyo es que la descripción se corte automáticamente al llegar al caracter 165 pero en este caso en vez de cortarse da error de mysql, me gustaría poder desactivar ésto y ya eh probado con el display_error=Off pero no se puede.

saludos
No la base de datos no corta lo que le mandas, si le mandas 166 caracteres a un campo de 165 va a tratar de insertarlo sin revisar como viene, deberias de cortar el campo desde programacion antes de mandarlo a la base de datos, eso no se puede "desactivar" como mencionas.

El motor de base de datos se asegura de que la transaccion no se pueda realizar porque el campo esta definido para guardar 165 caracteres.

Lo que puedes hacer es cambiar el campo en la base de datos.....
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #6 (permalink)  
Antiguo 30/01/2018, 16:58
 
Fecha de Ingreso: abril-2015
Ubicación: Murcia
Mensajes: 12
Antigüedad: 9 años
Puntos: 0
Respuesta: Ubuntu server error al insertar cadena larga en mysql

Cita:
Iniciado por Libras Ver Mensaje
No la base de datos no corta lo que le mandas, si le mandas 166 caracteres a un campo de 165 va a tratar de insertarlo sin revisar como viene, deberias de cortar el campo desde programacion antes de mandarlo a la base de datos, eso no se puede "desactivar" como mencionas.

El motor de base de datos se asegura de que la transaccion no se pueda realizar porque el campo esta definido para guardar 165 caracteres.

Lo que puedes hacer es cambiar el campo en la base de datos.....
Si me eh dado cuenta que apache en linux es justamente como dices, sin embargo usando xampp en windows y en paginas web alojadas en 1and1 si corta los caracteres sobrantes es por eso que no podía imaginarme el problema pero ya hemos dado con ello.

Muchas gracias por tu aporte, lo que eh hecho es usar substr para limitar el numero de caracteres que se envían.

Salu2

Etiquetas: server, ubuntu
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 08:31.