Para abordar el error que está recibiendo, mysql_real_escape_string()
requiere una conexión abierta a través de mysql_connect()
. Debido a que no tiene uno, está intentando conectarse y falla (usando un nombre de usuario de matthew
, mientras que su PDO se conecta con root
). Además, no puede (o no debe ) mezclar y combinar mysql_real_escape_string()
y PDO
- son bibliotecas diferentes.
Con respecto a "cuándo" usar declaraciones preparadas, la regla general es siempre que los valores no estén codificados. Tu ejemplo de LIKE '%hotmail%'
no necesita estar preparado, está codificado y nunca cambiará (a menos que lo actualice manualmente, por supuesto).
Si tiene una consulta que incluirá una variable de cualquier tipo, ya sean datos de $_POST
o $_GET
, o una variable que un desarrollador hizo 10 líneas antes de la consulta, debe usar una declaración preparada (o al menos escapar de ella, consulte DOP::quote
).