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.