Foros del Web » Programando para Internet » PHP »

problemas con simple update en bd

Estas en el tema de problemas con simple update en bd en el foro de PHP en Foros del Web. Hola estoy haciendo un sistema que actualiza una tabla llamada config donde se guardan ciertos parámetros de configuración ; en local tengo phpmyadmin 3.1 y ...
  #1 (permalink)  
Antiguo 09/10/2009, 11:11
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 21 años, 10 meses
Puntos: 8
problemas con simple update en bd

Hola estoy haciendo un sistema que actualiza una tabla llamada config donde se guardan ciertos parámetros de configuración ; en local tengo phpmyadmin 3.1 y mysql 5.1 y funciona perfectamente , pero en internet es el phpmyadmin 2.8 y mysql 5.0(no se si los problemas vendrán de ahí) , el tema es que me tira este error (no se que tendrá que ver una tabla html con un error sql por eso me he perdido):

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 '100%' align='center' cellpadding='2' cellspacing='2' >

La consulta es esta :

Código:
$query="update config
			 SET    emailWebmaster='".trim($datos['emailWebmaster'])."' ,
					nombreSitio='".trim($datos['nombreSitio'])."' ,
					url='".trim($datos['url'])."' ,
					urlPanelControl='".trim($datos['urlPanelControl'])."', 
					linksTitle='".trim($datos['linksTitle'])."' ,
					RecuperarPwd='".trim($datos['RecuperarPwd'])."', 
					Vendedor='".trim($datos['Vendedor'])."' ,
					Factura='".trim($datos['Factura'])."' ,
					moneda='".trim($datos['moneda'])."' ,
					iPeqSize='".trim($datos['iPeqSize'])."' ,
					iBigSize='".trim($datos['iBigSize'])."' ,
					articulos='".trim($datos['articulos'])."' ,
					articulosaTit='".trim($datos['articulosaTit'])."' 
				    WHERE id=1";
Un saludo y gracias de antemano.
  #2 (permalink)  
Antiguo 09/10/2009, 11:26
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: problemas con simple update en bd

Alguno de los datos que usas contiene comillas simples, de ahí el problema. Debes filtrar los datos usando mysql_real_escape_string antes de insertarlos en la consulta.

Tema transladado desde la sección de Mysql.

Saludos.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 09/10/2009, 14:42
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 21 años, 10 meses
Puntos: 8
Respuesta: problemas con simple update en bd

Cita:
Iniciado por David Ver Mensaje
Alguno de los datos que usas contiene comillas simples, de ahí el problema. Debes filtrar los datos usando mysql_real_escape_string antes de insertarlos en la consulta.

Tema transladado desde la sección de Mysql.

Saludos.
Gracias por la respuesta , pero ¿sería mucho pedir un ejemplillo?.
Mil gracias.
  #4 (permalink)  
Antiguo 09/10/2009, 14:45
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: problemas con simple update en bd

Por ejemplo, para el primer dato:
Código PHP:
Ver original
  1. mysql_real_escape_string(trim($datos['emailWebmaster']))
Lo mismo para los demás.

Más información en el manual: mysql_real_escape_string
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 09/10/2009, 14:46
Avatar de Joni2Back  
Fecha de Ingreso: marzo-2009
Mensajes: 146
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: problemas con simple update en bd

proba de hacer la query al estilo insert

update config set (datos,datos,datos) ($datos,$datos,$datos)
  #6 (permalink)  
Antiguo 09/10/2009, 14:55
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 21 años, 10 meses
Puntos: 8
Respuesta: problemas con simple update en bd

Cita:
Iniciado por David Ver Mensaje
Por ejemplo, para el primer dato:
Código PHP:
Ver original
  1. mysql_real_escape_string(trim($datos['emailWebmaster']))
Lo mismo para los demás.

Más información en el manual: mysql_real_escape_string
Perfecto ¡¡ ya funciona ¡¡ , pero una cosa no entiendo todavía despúes de tanto tiempo con php , ¿porque si no pongo las comillas simples si funciona e inserta correctamente los datos del update, es decir si en vez de esto $datos['emailWebmaster'] pongo esto otro: $datos[emailWebmaster] no necesito usar esa función de escape mysql_real_escape_string porque ¿realmente que hace la función de escape?.

Un saludo y mil gracias
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 09:54.