Při uvolnění příkazu se vrátí hodnota pg_query
označuje úspěch nebo ne, jako u jakéhokoli „prohlášení o užitečnosti“. Při selhání by měl vrátit hodnotu false. Například:
if (!pg_query($cnx, "deallocate foobar")) {
echo "Error deallocate: " . pg_last_error($cnx);
}
else {
echo "deallocate successful";
}
Zobrazí se:
Všimněte si, že název příkazu, který se má uvolnit, nesmí být obklopen jednoduchými uvozovkami, protože se jedná o identifikátor, nikoli řetězcový literál. Pokud je nutné jej uzavřít kvůli problematickým znakům, lze to provést pomocí pg_escape_identifier
(php>
=5.4.4)
Pro vyčištění relace není ani nutné opakovat připravené příkazy a rozdělit je jeden po druhém, můžete zavolat DEALLOCATE ALL
místo toho stále s pg_query
.
Existuje také další prohlášení, které provede více vyčištění v jednom dotazu:DISCARD ALL
Nic z toho není ani nutné, pokud se skript skutečně odpojí od postgresu, protože připravené příkazy jsou lokální pro jejich nadřazenou relaci a zemřou s ní.
Explicitní vyčištění je nutné při použití opětovného použití připojení mezi skripty, buď s trvalými připojeními pomocí PHP (pg_pconnect
), nebo sdružování připojení jako pgBouncer
(ačkoli samotný pooler může volat DISCARD ALL
v závislosti na jeho konfiguraci).