Votre exemple posté n'a pas de sens - pg_prepare()
et pg_query_params()
sont des fonctions indépendantes avec des objectifs différents que vous n'utiliseriez normalement pas conjointement.
pg_prepare()
prépare une instruction (une requête) pour une exécution ultérieure via pg_execute()
. Ceci est fait comme une optimisation potentielle - si vous savez à l'avance que vous devrez exécuter l'instruction plusieurs fois de suite, la préparer à l'avance peut économiser du travail sur le serveur de base de données, car il n'a pas à (re-) préparer le relevé pour chaque appel.
pg_query_params()
(ainsi que sa version 'simplifiée' pg_query()
) exécute simplement l'instruction (requête) directement, forçant le serveur de base de données à (re)préparer l'instruction à chaque fois que la fonction est appelée.
Bref, ça
$result = pg_query_params($query, $params);
vous donnera exactement le même résultat que celui-ci
$statement = pg_prepare($query);
$result = pg_execute($statement, $params);
La seule différence est que dans le second cas, vous avez toujours l'instruction préparée, prête à être réutilisée pour d'autres appels à pg_execute()
- c'est pourquoi vous pouvez lui donner un nom, car de cette façon vous pouvez avoir différentes instructions préparées sur la même connexion que vous pouvez exécuter à votre guise, plusieurs fois, dans un ordre arbitraire.