PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Para entender as consultas no PHP PG -statemens preparados


Seu exemplo postado não faz sentido - pg_prepare() e pg_query_params() são funções independentes com finalidades diferentes que você normalmente não usaria em conjunto.

pg_prepare() prepara uma instrução (uma consulta) para execução posterior via pg_execute() . Isso é feito como uma potencial otimização - se você souber com antecedência que precisará executar a instrução várias vezes seguidas, prepará-la antecipadamente pode economizar algum trabalho no servidor de banco de dados, pois ele não precisa (re)preparar a declaração para cada chamada.

pg_query_params() (assim como sua versão 'mais simples' pg_query() ) apenas executa a instrução (consulta) diretamente, forçando o servidor de banco de dados a (re)preparar a instrução toda vez que a função é chamada.

Então, em resumo, isso
$result = pg_query_params($query, $params);

lhe dará exatamente o mesmo resultado que este
$statement = pg_prepare($query);
$result = pg_execute($statement, $params);

A única diferença é que, no segundo caso, você ainda tem a instrução preparada, pronta para ser reutilizada em mais chamadas para pg_execute() - é por isso que você pode dar um nome a ele, já que dessa forma você pode ter diferentes instruções preparadas na mesma conexão que você pode executar como quiser, muitas vezes, em ordem arbitrária.