Cytat(michat34 @ 5.10.2012, 23:04:34 )

a) exec
b) podpinanie
To którą metodę wybrać, zależy od potrzeby, od odpowiedzi jaką chcemy uzyskać.
Różnice:
- Funkcja exec, wg manuala, wykonuje zapytanie i zwraca liczbę wierszy. Wg manuala, dane zewnętrzne przekazywane do zapytania w funkcji exec powinny zostać odpowiednio spreparowane ("eskejpowane"). Podobna funkcja PDO - query - też wykonuje zapytanie, którego dane muszą zostać eskejpowane, ale zwraca rezultat jako obiekt PDOStatement.
- Podpinanie. Czyli prepare i execute. Te funkcje zaprojektowane są z myślą o elastyczności i bezpieczeństwie jednocześnie. Elastyczność, bo jeden raz skonstruowane zapytanie można wywoływać dowolną ilość razy, za każdym razem zmieniając tylko dane wejściowe, be konieczności przepisywania tego samego zapytania. Bezpieczeństwo, bo dają możliwość bindowania danych zewnętrznych do zapytania, czyniąc tym samym zapytanie zupełnie odpornym na SQL Injection.
Czego użyć? Jeśli przekazujesz dane zewnętrzne (czy to z GET czy z POST czy jakiekolwiek inne) to tylko i wyłącznie prepare/execute z bindowaniem (podpinaniem). Jeśli nie przekazujesz danych zewnętrznych, to zależy co chcesz uzyskać: jeśli dane z SELECTa to
PDO::query, jeśli inne to
PDO::exec.