Error mysql_real_escape_string deprecated – Como utilizar mysqli_real_escape_string
Si estáis en pleno cambio de código o si aún no os habéis renovado es posible que este error o warning mysql_real_escape_string deprecated os de más de un quebradero de cabeza, sobre todo si los mensajes de error os rompen la consulta por json por devolver más de lo que debería. (Incluso un par de saltos de linea)
Para los que no sepan exactamente para que sirve esta función, lo que hace es escapar los caracteres de manera que si introducen una ‘ en una caja de texto en la que debáis de recibir los datos a la hora de concadenar no os rompan la consulta o aún peor, intente inyectar código para sacar información de vuestra base de datos.
Para ello la solución es utilizar mysqli_real_escape_string, nada más sencillo, solo que recibirá dos parámetros a diferencia de mysql_real_escape_string.
mysqli_real_escape_string($conexion, $consultaMySQL);
Recordar que $conexion utiliza la nueva forma de conectar con MySQL utilizando mysqli_connect.
Espero que os sirva!
Un saludo!
Comments
Hola.
Interesante tu post, aunque el video muestra error.
Yo me conecto con una clase ADODB.
$BD = new ConexionDB(); se conecta a la base de datos.
Pero el mysqli_real_escape_string() necesita que use mysqli_connect() que no utilizo.
Cómo soluciono mi problema?
Gracias.
Buenas Diana
Pues en ese caso, lo único que se me ocurre es que tendrás que escapar los caracteres a “mano”. Hay diferentes funciones para tal objetivo y desconozco si hay algo específico para ADODB, ya que con mysqli estamos trabajando directamente con el nativo de MySQL.
He realizado una búsqueda rápida en Google y he encontrado esta posible solución:
http://www.experts-exchange.com/questions/23382759/PHP-ADOdb-and-mysqli-real-escape-string.html
Sino te sirve, pasa denuevo por aquí y vemos opciones.
Un saludo!