Apesar de qualquer diferença teórica, nenhuma dessas funções deve ser usada de qualquer maneira - portanto, não há nada para se preocupar.
A única razão para usar o PDO é o suporte para declarações preparadas , mas nenhuma dessas funções oferece isso. Então, eles não devem ser usados.
Use
prepare()/execute()
em vez disso, especialmente para instruções UPDATE,INSERT,DELETE. Observe que, embora as declarações preparadas sejam amplamente divulgadas como medida de segurança, é apenas para atrair a atenção das pessoas. Mas sua real o objetivo é a formatação de consulta adequada . O que também oferece segurança - pois a consulta formatada corretamente também não pode ser injetada - apenas como efeito colateral. Mas, novamente - a formatação é um objetivo principal, apenas porque mesmo dados inocentes podem causar um erro de consulta se não forem formatados corretamente.
EDIT:Observe que
execute()
retorna apenas TRUE
ou FALSE
para indicar o sucesso da operação. Para outras informações, como o número de registros afetados por um UPDATE
, métodos como rowCount()
são fornecidos. Consulte os documentos
.