Foros del Web » Programando para Internet » PHP »

Insertar HTML en mysql

Estas en el tema de Insertar HTML en mysql en el foro de PHP en Foros del Web. Hola. Veréis, estoy intentando insertar en un base de datos, aparte de varios input, el contenido de un textarea, a través del editor visual tinymce. ...
  #1 (permalink)  
Antiguo 29/04/2014, 09:59
 
Fecha de Ingreso: febrero-2012
Mensajes: 45
Antigüedad: 12 años, 1 mes
Puntos: 0
Insertar HTML en mysql

Hola.

Veréis, estoy intentando insertar en un base de datos, aparte de varios input, el contenido de un textarea, a través del editor visual tinymce.

El problema que se muestra es: Query was empty.

Según compruebo, parece que el problema esta en el tamaño o algo parecido, ya que cuando inserto una poca cantidad de texto me lo acepta, pero cuando se trata de insertar un texto mucho mayor, prácticamente un página web, no me deja...

Aquí dejo el código a ver si me podéis echar una mano.

Código PHP:

mysql_select_db
($database_base$base);
  
  
$insertSQL sprintf("INSERT INTO tabla (nombre, codigo) VALUES ('".$_POST['nombre']."', '".$_POST['listas']."', '".$contenido."', '".$fecha."', 0)"); 
  
$Result1 mysql_query($insertSQL$base) or die(mysql_error()); 
  #2 (permalink)  
Antiguo 29/04/2014, 10:04
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 1 mes
Puntos: 67
Respuesta: Insertar HTML en mysql

Si en el campo "tipo" de tu DB tienes marcado varchar deve ser porque superas el limite que le estableciste o el limite que genera, cambialo a "TEXT"

Saludos.
  #3 (permalink)  
Antiguo 29/04/2014, 10:10
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Insertar HTML en mysql

Nada que ver.
Cita:
Query was empty.
significa que la variable de la query no contiene nada.
Sería mejor que ejecutase un var_dump() previo para aseguarse que no se haya roto nada en eso:
Código PHP:
Ver original
  1. mysql_select_db($database_base, $base);
  2.   $insertSQL = sprintf("INSERT INTO tabla (nombre, codigo) VALUES ('".$_POST['nombre']."', '".$_POST['listas']."', '".$contenido."', '".$fecha."', 0)");
  3. var_dump($insertSQL);
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 29/04/2014, 12:00
 
Fecha de Ingreso: febrero-2012
Mensajes: 45
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Insertar HTML en mysql

Hola de nuevo.

Ya tengo localizado el error pero no se como resolverlo.

El problema esta a la hora de introducir el caracter de porcentaje %. En los estilos del html, algunos anchos están puestos en porcentajes en lugar de valores fijos.

¿Como debería de hacer para introducir el símbolo % dentro de la base de datos?

Gracias por las respuestas!
  #5 (permalink)  
Antiguo 29/04/2014, 12:21
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Insertar HTML en mysql

No aprece ser exactamente ese el problema. El caracter porcentual no debería traer problemas en MYSQL, pero puede romper por otra cosa.
¿Podrías postear un ejemplo del HTML que falla?
Postea el var_dump() de un caso.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 30/04/2014, 01:11
 
Fecha de Ingreso: febrero-2012
Mensajes: 45
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Insertar HTML en mysql

Hola.

Para tardar menos en realizar prueba, directamente le inserto texto en la consulta, del siguiente modo:

Código PHP:
$insertSQL sprintf("INSERT INTO tabla (nombre, codigo) VALUES ('".$_POST['nombre']."', '".$_POST['listas']."', 'as%asd')"); 
Y me sigue dando fallos. Ahora si quito el % no me da ningún fallo y funciona correctamente...

El resultado que me da el var_dump() cuando introduzco el porcentaje, es: bool(false)

Ni idea de que puede estar pasando... ¿Puede ser la codificación de la tabla o la columna?

Gracias.
  #7 (permalink)  
Antiguo 30/04/2014, 02:10
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 1 mes
Puntos: 67
Respuesta: Insertar HTML en mysql

Tienes dos campos recojidos nombre y codigo y quieres insertar tres valores nombre, listas y el que introduces manual.

Sobre el caracter nose prueba a guardarlo en una variable y insertar el valor con esa variable, nose.

Saludos.
  #8 (permalink)  
Antiguo 30/04/2014, 05:55
 
Fecha de Ingreso: febrero-2012
Mensajes: 45
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Insertar HTML en mysql

Hola.

Ya he dado con el problema.

El problema esta en el "sprintf". Cuando lo quito funciona perfectamente... no se a que se debe pero sin el funciona la inserción.

MaNuX0218 , en la consulta real inserto más datos en más columnas, pero al ponerlo aquí solo pongo dos de ellas, el resto las quito para una mejor lectura, pero esa de listas se me ha pasado, fallo mío!!

Gracias por la ayuda!! Un saludo!
  #9 (permalink)  
Antiguo 30/04/2014, 06:06
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Insertar HTML en mysql

Te cuento...

sprintf utiliza el % (acompañado de 1 o varios caracteres) para saber que "imprimir" en la cadena.

El uso correcto en tu caso, sería este:

Código PHP:

$insertSQL 
sprintf("INSERT INTO tabla (nombre, codigo) VALUES ('%s', '%s')"$_POST['nombre'], $_POST['listas']); 
Bueno, excepto que es mala práctica no tratar antes el "contenido" del POST o GET, para evitar inyecciones sql xD

Puedes leer más aqui: sprintf

(Siempre va bien consultar el manual xD)
__________________
>> Eleazan's Source
>> @Eleazan

Etiquetas: fecha, html, mysql, select, sql, tabla
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 21:16.