Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Różnica między PDO->query() i PDO->exec()

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ę .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Co nowego w replikacji MySQL w MySQL 8.0

  2. MySQL - eksploduj/podziel dane wejściowe do procedury składowanej

  3. Wydajność MySQL:MyISAM kontra InnoDB

  4. Jaka jest wada korzystania z pola o rozmiarze długiego tekstu MySQL, gdy każdy wpis zmieści się w polu o rozmiarze średniej długości tekstu?

  5. SQL wiele do wielu wybierz