Soy un novato con las bibliotecas PDO. Estoy trabajando en un entorno de desarrollo con mysql como mi base de datos. Puedo ejecutar mis consultas usando la función de preparación y ejecución mientras uso "?" marcador de posición y también método bindParam al usar marcadores de posición con nombre (por ejemplo: "columna").¿Cómo sabemos que PDO está escapando de las inyecciones de SQL?
Después de esto traté de ver si PDO hace algún tipo de escape al poner en cualquier cotización para desinfectar la consulta como lo hace mysql_real_escape_string. Estoy tratando de ver cuál sería la consulta, pero todo lo que obtengo es la declaración que se ha pasado a la declaración de preparación, pero no la consulta que se ejecutará.
Intenté var_dump el $ result-> execute(), y $ result-> fetch() pero la instrucción execute me da el sql de mi declaración de preparación con placeholders mientras que la instrucción fetch me da el resultado de esa consulta.
¿Hay alguna manera de ver la consulta de búsqueda que se ejecutará o, al menos, cómo se verían los parámetros antes de ejecutar la consulta?
Espero tener claro mi pregunta. : |
usted se preocupa demasiado. Las declaraciones preparadas escapan a su entrada al 100%. Si necesita ver cómo se ve la consulta final, debe configurar un registro de consulta de la base de datos. – netcoder
@netcoder Las declaraciones preparadas no escapan a nada (a menos que esté en modo compatible). Y no hay nada nuevo en el registro de consultas –
@Col. Metralla: Bueno, técnicamente sí, sí, aunque puedes decirlo de la manera que quieras. En cuanto a "no hay nada nuevo en el registro de consultas", simplemente no entiendo lo que eso significa ... – netcoder