Foros del Web » Programando para Internet » PHP »

Problema con cadena generada en PHP para insertar en la BD

Estas en el tema de Problema con cadena generada en PHP para insertar en la BD en el foro de PHP en Foros del Web. Hola!!! Tengo que ejecutar esta consulta: insert into baners (fec,hor,baner,tit,desc) values ('2007-04-16','22:00:13','<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="468" height="60"> <param name=movie value="images.website.ws/banners/kvmlm2/468x60_03.swf?link1=website.ws/kvmlm2/my.dhtml?sponsor=tilens"> <param name=quality value=high> <embed src="images.website.ws/banners/kvmlm2/468x60_03.swf?link1=website.ws/kvmlm2/my.dhtml?sponsor=tilens" type="application/x-shockwave-flash" ...
  #1 (permalink)  
Antiguo 16/04/2007, 14:08
Avatar de Tilens  
Fecha de Ingreso: febrero-2007
Ubicación: España
Mensajes: 41
Antigüedad: 17 años, 2 meses
Puntos: 0
Problema con cadena generada en PHP para insertar en la BD

Hola!!!

Tengo que ejecutar esta consulta:

insert into baners (fec,hor,baner,tit,desc) values ('2007-04-16','22:00:13','<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="468" height="60"> <param name=movie value="images.website.ws/banners/kvmlm2/468x60_03.swf?link1=website.ws/kvmlm2/my.dhtml?sponsor=tilens"> <param name=quality value=high> <embed src="images.website.ws/banners/kvmlm2/468x60_03.swf?link1=website.ws/kvmlm2/my.dhtml?sponsor=tilens" type="application/x-shockwave-flash" quality="high" width="468" height="60" pluginspage="macromedia.com/go/getflashplayer" > </embed> </object>','Baner Gdi','banner gdi en flash horizontal');

pero me da el fallo:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'desc) values ('2007-04-16','22:00:13','<object classid="clsid:D27CDB6E-' at line 1
1064

Ya he probado a formatear la cadena de la siguiente manera:

$sql.="'".mysql_escape_string(stripslashes(htmlspe cialchars($_POST['ban'])))."',";
$sql.="'".htmlspecialchars(stripslashes($_POST['ban']))."',";
$sql.="'".htmlspecialchars($_POST['ban'])."',";

y varias combinaciones más basadas en estas funciones y similares, pero no doy la clave.... siempre recibo el mismo error

a ver si alguien puede ayudarme por favor.
  #2 (permalink)  
Antiguo 16/04/2007, 14:20
Avatar de deskman  
Fecha de Ingreso: noviembre-2005
Ubicación: Chorrillos Lima - Peru
Mensajes: 28
Antigüedad: 18 años, 5 meses
Puntos: 1
Re: Problema con cadena generada en PHP para insertar en la BD

Hola Tilens, probe tu código en un editor SQL y el nombre de tu campo desc es una palabra reservada en sql, prueba cambiando el nombre del campo, suerte.

Saludos
__________________
"El conocimiento que no se comparte no es conocimiento"
  #3 (permalink)  
Antiguo 16/04/2007, 15:05
Avatar de Shevkorn  
Fecha de Ingreso: enero-2005
Ubicación: Trujillo
Mensajes: 34
Antigüedad: 19 años, 3 meses
Puntos: 1
Re: Problema con cadena generada en PHP para insertar en la BD

has revisado si el campo de la base de datos tiene la cantidad de caracteres suficientes para almacenar semejante cadena?
Si usas varchar() creo q ya la regaste... tendrias q cambiar a TEXT o al q te convenga..
Saludos
__________________
Taek said: ¿Aùn los pecadores podremos llegar al cielo?
  #4 (permalink)  
Antiguo 16/04/2007, 15:23
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Problema con cadena generada en PHP para insertar en la BD

Usa addslashes() a los valores de tu campo ANTES de crear tu consulta SQL, tmb agrega backticks (`) para separar tus campos, asi no tienes problema si usas palabras reservadas.

Salu2.
  #5 (permalink)  
Antiguo 16/04/2007, 15:47
Avatar de Tilens  
Fecha de Ingreso: febrero-2007
Ubicación: España
Mensajes: 41
Antigüedad: 17 años, 2 meses
Puntos: 0
De acuerdo Re: Problema con cadena generada en PHP para insertar en la BD

Muchas gracias por las respuestas compañeros....

Al final el error era el nombre del campo desc que efectivamente es una palabra reservada que no tuve en cuenta al declarar la tabla muchas gracias otra vez por vuestras respuestas colegas el tema esta solucionado
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 10:33.