Foros del Web » Programando para Internet » PHP »

INSERT en mysql

Estas en el tema de INSERT en mysql en el foro de PHP en Foros del Web. hola gente, seguramente mas de uno se topo con este problema q hoy tengo yo, esutve buscando en el foro y no encontre una ayuda ...
  #1 (permalink)  
Antiguo 06/03/2006, 07:14
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 6 meses
Puntos: 55
INSERT en mysql

hola gente, seguramente mas de uno se topo con este problema q hoy tengo yo, esutve buscando en el foro y no encontre una ayuda a mi medida. el tema es el siguiente, creo q le dicen "sql inyection" a esto, en un insert del tipo

Código PHP:
mysql_query("INSERT INTO tabla (id,nombre,descrip) VALUES ('','$_POST['nombre']','$_POST['descript']')"); 
anda todo perfecto, pero nunca falta un usuario web q mete caracteres "raros", todo lo referente a palabras asentuadas lo logre salvar con htmlentities(), pero se complico con los ' comillas simples, yo hice una pequeña funcion para saltar todos estos posibles errores

Código PHP:
$campo=nl2br(htmlentities(str_replace("\'","\\'",trim($_POST['campo_recibido'])))); 
y luego guardo este dato en la base de datos

Código PHP:
mysql_query("INSERT INTO tabla (id,nombre,descrip) VALUES ('','$campo1','$campo2')"); 
y en esta ocacion anda perfecto
ahora quisiera saber si hay alguna forma un poco mas eficiente, ya q para cada campo q recibo de un formulario tengo q aplicarle esta funcioncita q hice

la unica ventaja q vi fue q los datos como quedna guardados los puedo recuperar sin ningun problema y quiero mantener esta ventaja, me refieron a q pueda recuperar los daots y mostrarlos directamente sin tener q hacer ningun proceso extra a la hora de mostrarlos

alguna idea???
  #2 (permalink)  
Antiguo 06/03/2006, 08:02
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Yo usaría:

mysql_real_escape_string()
www.php.net/mysql_real_escape_string

Filtra la mayoría de caracteres "raros" que podrían causar problemas a la hora de ejecutar tu sentencia SQL.

Un saludo,
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 00:28.