Pomimo jakiejkolwiek teoretycznej różnicy, żadna z tych funkcji i tak nie powinna być używana - więc nie ma się czym martwić.
Jedynym powodem używania PDO jest obsługa przygotowanych oświadczeń , ale żadna z tych funkcji tego nie oferuje. Dlatego nie powinny być używane.
Użyj prepare()/execute()
zamiast tego zwłaszcza dla instrukcji UPDATE,INSERT,DELETE.
Należy pamiętać, że chociaż przygotowane oświadczenia są szeroko reklamowane jako środek bezpieczeństwa, mają one jedynie przyciągnąć uwagę ludzi. Ale ich prawdziwe celem jest właściwe formatowanie zapytań . Daje to również bezpieczeństwo - ponieważ poprawnie sformatowanego zapytania nie można wstrzyknąć - podobnie jak efekt uboczny. Ale znowu – formatowanie jest głównym celem, tylko dlatego, że nawet niewinne dane mogą spowodować błąd zapytania, jeśli nie zostaną prawidłowo sformatowane.
EDYCJA:Proszę zauważyć, że execute()
zwraca tylko TRUE
lub FALSE
aby wskazać powodzenie operacji. Aby uzyskać inne informacje, takie jak liczba rekordów, których dotyczy UPDATE
, metody takie jak rowCount()
są zapewnione. Zobacz dokumentację
.