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

Diferencia entre PDO->query() y PDO->exec()

A pesar de cualquier diferencia teórica, ninguna de estas funciones debe usarse de todos modos, por lo que no hay nada de qué preocuparse.

La única razón para usar PDO es soporte para declaraciones preparadas , pero ninguna de estas funciones lo ofrece. Por lo tanto, no deben usarse.

Usa prepare()/execute() en cambio, especialmente para ACTUALIZAR, INSERTAR, ELIMINAR sentencias.

Tenga en cuenta que aunque las declaraciones preparadas se anuncian ampliamente como medida de seguridad, es solo para atraer la atención de las personas. Pero su real el propósito es formato de consulta adecuado . Lo que también le brinda seguridad, ya que la consulta con el formato correcto no se puede inyectar también, solo como efecto secundario. Pero nuevamente, el formateo es un objetivo principal, solo porque incluso los datos inocentes pueden causar un error de consulta si no se formatean correctamente.

EDITAR:Tenga en cuenta que execute() devuelve solo TRUE o FALSE para indicar el éxito de la operación. Para otra información, como el número de registros afectados por una UPDATE , métodos como rowCount() están provistos. Consulte los docs .