sql >> Base de Datos >  >> RDS >> Mysql

Cuando escapo toda la entrada, a veces deja barras inclinadas (\) en la cadena y la inserta en la base de datos. ¿Por qué sucede y cómo puedo solucionar esto?

Tienes razón.
Las citas mágicas no tienen nada que ver con las cosas de sql y no deberían estar conectadas a ellas.
Porque las comillas mágicas son un problema en todo el sitio y el escape de sql es solo un problema relacionado con sql.

Por lo tanto, necesitan un tratamiento diferente y nunca deben usarse en conjunto.

Tienes que deshacerte de las comillas mágicas incondicionalmente, porque estropea no solo las cosas de SQL, sino también cada manipulación de datos de tu sitio.

Por lo tanto, sería prudente colocar un código stripslashes en cualquier archivo de arranque que se ejecutará en cada llamada del script. El código que puede encontrar en numerosas implementaciones de dicho código, simplemente busque en Google la función 'stripslashes_deep'.

Sería prudente tener este código siempre ejecutándose (por supuesto, bajo la condición de verificar get_magic_quotes_gpc()) a pesar del estado real de las comillas mágicas, solo por compatibilidad.

Pero existe otra posibilidad de desactivarlos:intente crear un archivo php.ini en la raíz de su aplicación.

Sin embargo, hay un grave error en su código. De hecho, no protege nada.
Estás escapando de $memberid y $postid ¡pero no los cites! . Por lo tanto, no hay protección en absoluto. Solo porque el escape solo funciona cuando se usa con comillas.

Por favor, recuerda:

¡Escapar no es sinónimo de seguridad!

Escapar solo no puede ayudar en nada. Hay todo un conjunto de reglas a seguir.

Escribí una explicación decente recientemente, así que no me repetiría:Reemplazo de funciones mysql_* con PDO y declaraciones preparadas