PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Per comprendere le query in PHP PG -preparati statemens

Il tuo esempio pubblicato non ha senso - pg_prepare() e pg_query_params() sono funzioni indipendenti con scopi diversi che normalmente non useresti insieme.

pg_prepare() prepara un'istruzione (una query) per l'esecuzione successiva tramite pg_execute() . Questo viene fatto come una potenziale ottimizzazione:se sai in anticipo che dovrai eseguire l'istruzione più volte di seguito, prepararla in anticipo può far risparmiare un po' di lavoro sul server del database, poiché non deve (ri)preparare la dichiarazione per ogni chiamata.

pg_query_params() (così come la sua versione 'più semplice' pg_query() ) esegue semplicemente l'istruzione (query) direttamente, costringendo il server del database a (ri)preparare l'istruzione ogni volta che la funzione viene chiamata.

Quindi, in breve, questo

$result = pg_query_params($query, $params);

ti darà lo stesso identico risultato di questo

$statement = pg_prepare($query);
$result = pg_execute($statement, $params);

L'unica differenza è che nel secondo caso, hai ancora l'istruzione preparata, pronta per essere riutilizzata per più chiamate a pg_execute() - ecco perché puoi dargli un nome, poiché in questo modo puoi avere diverse istruzioni preparate sulla stessa connessione che puoi eseguire a tuo piacimento, molte volte, in ordine arbitrario.