gs tiene una respuesta duramente desestimada en realidad es un poco correcta.
SQL estándar utiliza el doble para escapar de un apóstrofo literal. El uso no estándar de MySQL de barras diagonales para escaparse es la configuración predeterminada, pero se puede deshabilitar y a menudo lo es, en particular en sql_mode ANSI.
En este caso solo funcionará la sintaxis duplicada, y cualquier aplicación que tenga usando addslashes (u otro método de escape ad-hoc) se romperá. mysql_real_escape_string usará el método de escape que sea mejor para el sql_mode de la conexión.
El problema de la codificación multibyte también es importante si todavía está utilizando esas desagradables codificaciones del este de Asia que reutilizan los 128 caracteres inferiores, pero en realidad quiere usar UTF-8 en su lugar. \ n-escaparse, por otro lado, no tiene importancia ya que MySQL perfectamente puede hacer frente a una nueva línea en una declaración.
Cualquier codificación con un carácter multibyte válido que termine en 0x5c puede introducir comillas pasadas 'addslashes()'. Chris Shiflett tiene un excelente ejemplo en su blog usando GBK. http://shiflett.org/blog/2006/jan/addslashes-versus-mysql-real-escape-string – Matthew
Eres _right_, pero no dijiste _how_. – bobobobo
Todo lo contrario: en general, las pestañas son correctas, pero en algunos casos extremadamente raros, realmente necesitamos mres. –