PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Pour comprendre les requêtes dans PHP PG -instructions préparées

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.