Puede alguien arrojar alguna luz sobre las diferencias entre estas 2 funciones, desde el manual de PHPmysql_real_escape_string VS addslashes
addslashes: devuelve una cadena con barras invertidas antes de personajes que necesitan ser citado en las consultas de bases de datos, etc. Estos caracteres son comilla simple ('), comillas dobles ("), la barra invertida() y NUL (el byte NULL)
mysql_real_escape_string:. mysql_real_escape_string() llama a mysql_real_escape_string función de biblioteca de MySQL, que antepone barras invertidas a los siguientes caracteres: \ x00, \ n, \ r, \, ', "y \ x1a.
Por lo que sé la diferencia principal es \ x00 \ n \ r \ X1A la que addslashes de escape no funciona, ¿me puede decir cuál es el significado de que es?
gracias
ANSI SQL especifica que una comilla simple puede ser representado por dos comillas simples en una fila, pero mysql_real_escape_string() no hace eso - que siempre se escapa usando una barra invertida por lo que yo he visto. Si tiene un ejemplo de una versión de MySQL que escapa duplicando el carácter de cita, me interesaría ver el ejemplo. –
@BillKarwin, 'mysql_real_escape_string' de PHP llama de MySQL [' mysql_real_escape_string'] (http://dev.mysql.com/doc/refman/4.1/en/mysql-real-escape-string.html), que hace lo que quiere para escapar de las cuerdas. La documentación de PHP ahora dice que usa barras negras, pero la documentación de MySQL no dice nada al respecto. Recuerdo que en algún momento se escaparía con ' ''' en lugar de '\ '', tal vez eso no es el caso más, o tal vez requiere configuraciones de conexión específicos (' mysql_real_escape_string' toma un argumento de conexión para que pueda revisarlos después todas). – zneak
Aha, que probó y descubrió que si se establece 'sql_mode = NO_BACKSLASH_ESCAPES' se comporta como usted describe. Mi confusión se debe a que 'mysqldump' todavía no tiene los caracteres de comillas dobles, incluso si tiene ese modo sql establecido. ¡Lo que significa que puede crear un archivo de volcado que no puede ser reimportado en el servidor que lo generó! –