str mysqli_real_escape_string mysql_real_escape_string expects exactly alternative php mysql escaping smarty

php - mysqli_real_escape_string - ¿No debería mysql_real_escape_string() dejar barras en la base de datos?



mysqli_real_escape_string($ str); (1)

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

Cuando obtengo el registro de DB, no tengo barras diagonales inversas también. Pero cuando acabo de pasar una cadena escapada sin insertarla en el archivo db, se vuelve a cortar.

¿No debería agregar barras, insertar con ellas y luego las quitaría cuando salga? ¿O me estoy perdiendo algo?


Te lo estás perdiendo: escapar con barras diagonales tiene como objetivo garantizar que las consultas no estén mal formadas, por ejemplo, algo así seguramente se romperá y posiblemente se arriesgue a las inyecciones de 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 "cualquiera que sea" en la tabla.