Twój opublikowany przykład nie ma sensu - pg_prepare()
i pg_query_params()
są niezależnymi funkcjami o różnych celach, których normalnie nie używałbyś w połączeniu.
pg_prepare()
przygotowuje instrukcję (zapytanie) do późniejszego wykonania przez pg_execute()
. Odbywa się to jako potencjalna optymalizacja - jeśli wiesz z góry, że będziesz musiał wykonać instrukcję wiele razy z rzędu, przygotowanie jej z góry może zaoszczędzić trochę pracy na serwerze bazy danych, ponieważ nie musi (ponownie) przygotowywać oświadczenie dla każdego połączenia.
pg_query_params()
(jak również jego „prostsza” wersja pg_query()
) po prostu wykonuje instrukcję (zapytanie) bezpośrednio, zmuszając serwer bazy danych do (ponownie)przygotowania instrukcji za każdym razem, gdy funkcja zostanie wywołana.
Krótko mówiąc, to
$result = pg_query_params($query, $params);
da ci dokładnie taki sam wynik jak ten
$statement = pg_prepare($query);
$result = pg_execute($statement, $params);
Jedyna różnica polega na tym, że w drugim przypadku nadal masz przygotowaną instrukcję, gotową do ponownego użycia w przypadku większej liczby wywołań pg_execute()
- dlatego możesz nadać mu nazwę, ponieważ w ten sposób możesz mieć różne przygotowane oświadczenia na tym samym połączeniu, które możesz wykonać, jak chcesz, wiele razy, w dowolnej kolejności.