Escapar de comodines de MySQL
En un servidor antiguo que estoy usando y no puedo usar declaraciones preparadas, actualmente estoy tratando de escapar completamente de la entrada del usuario antes de enviarlo a MySQL. Para esto estoy usando la función PHPmysql_real_escape_string
.
Como esta función no escapa a los comodines de MySQL% y _ estoy usandoaddcslashes
para escapar de estos también.
Cuando envío algo como:
test_test " '
a la base de datos y luego leerlo de nuevo, la base de datos muestra:
test\_test " '
Mirando esto, no puedo entender por qué el _ tiene una barra invertida anterior, pero el "y 'no lo hacen. Dado que todos se escapan con \ seguramente _' y" todos deberían aparecer iguales, es decir, todos tienen el carácter de escape visible o No todos lo tienen visible.
¿Se escapan los escapes automáticamente?
¿Alguien puede explicar esto?