sirve que para mysqli_real_escape_string mysql_real_escape_string expects exactly alternative php escaping mysql-real-escape-string mysql-escape-string

que - mysql_real_escape_string php 7



mysql_escape_string VS mysql_real_escape_string (4)

Así que esto es algo que todos deberíamos saber y jugamos en mi mente cuando lo vi por primera vez ...

Sé que mysql_escape_string está en desuso de 5.3, pero cuál fue la diferencia real en mysql_real_escape_string .

Lo que pensé era que mysql_real_escape_string es exactamente igual que mysql_escape_string aparte de mysql_real_escape_string toma un segundo argumento para el recurso mysql.

así que entonces pensé con seguridad que debe haber alguna diferencia en cuanto a cómo se manejan las cadenas porque no habría necesidad de 2 funciones.

Entonces, pensé que la diferencia se debía exclusivamente a la codificación local y de caracteres. ?

Alguien puede aclarar esto para mí ?


Ahora ambas de estas funciones están en desuso en

PHP 4> = 4.3.0 y PHP 5. Recomiendan usar la extensión PDO_MySQL


Bueno ... más o menos, sí. Tiene en cuenta el conjunto de caracteres de la conexión MySQL.

http://php.net/mysql_escape_string

Esta función es idéntica a mysql_real_escape_string() excepto que mysql_real_escape_string() toma un controlador de conexión y escapa de la cadena de acuerdo con el conjunto de caracteres actual. mysql_escape_string() no toma un argumento de conexión y no respeta la configuración del conjunto de caracteres actual.


La diferencia es que mysql_escape_string simplemente trata la cadena como bytes sin procesar, y agrega un escape donde cree que es apropiado.

mysql_real_escape_string , por otro lado, utiliza la información sobre el conjunto de caracteres utilizado para la conexión MySQL. Esto significa que la cadena se escapa al tratar correctamente los caracteres de varios bytes; es decir, no insertará caracteres de escape en medio de un personaje. Es por esto que necesita una conexión para mysql_real_escape_string ; Es necesario para saber cómo debe tratarse la cuerda.

Sin embargo, en lugar de escapar, es una mejor idea utilizar consultas parametrizadas de la biblioteca MySQLi; previamente ha habido errores en la rutina de escape, y es posible que algunos aparezcan nuevamente. Parametrizar la consulta es mucho más difícil de desordenar, por lo que es menos probable que pueda verse comprometido por un error de MySQL.


mysql_escape_string no está en desuso desde 5.3 pero, para 4.3.0 y superior. Entonces, cualquiera que use una versión de PHP por encima de / o 4.3.0 debe usar mysql_real_escape_string .

Si usa php < 4.3.0 , magic_quotes_gpc active desde php.ini, aunque se recomienda actualizar, pero si su código tendrá un problema, asegúrese de usar magic_quotes_gpc y la función addslash lugar de mysql_escape_string .