Pregunta

Estoy usando smarty y mysql_real_escape_string () para la entrada del usuario, y cuando inserto algún código con ' o " , y busco en phpmyadmin se muestra sin barras invertidas.

Cuando obtengo un registro de DB no tengo barras invertidas también. Pero cuando acabo de pasar una cadena escapada sin insertarla en la base de datos tiene una barra invertida.

Si no agrega barras, inserte con ellas y luego pelarlos cuando saldría? ¿O me estoy perdiendo algo?

¿Fue útil?

Solución

Te lo estás perdiendo: escapar con barras invertidas tiene como objetivo garantizar que las consultas no tengan un formato incorrecto, p. algo como esto seguramente se romperá y posiblemente correrá el riesgo de inyecciones SQL:

insert into table values ('whatever 'this' is')

y nada se guardará en la tabla, mientras que esto:

insert into table values ('whatever \'this\' is')

guardará el valor " sea lo que sea 'esto' es " en la mesa.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top