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

¿Es suficiente usar mysqli_real_escape_string para asegurar mi cadena de consulta?

Si se usa en todas partes correctamente, real_escape_string es una opción. Pero considere el siguiente código:

$page = $_GET['page'];
$sql = 'SELECT `name` FROM `user` WHERE `id` = ' . mysqli_real_escape_string($page);

¿Seguro o no? real_escape_cadena solo se puede usar para escapar cadenas dentro de comillas. $page podría ser 1 OR id IN (2,3,4,5,6,7,8,9) → sin comillas, sin escape real. La conversión al tipo de datos correcto (int) podría ayudar en este caso. Es mejor usar declaraciones preparadas, no son tan fáciles de usar mal.