PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Премахване на подготвени заявки

При освобождаване на израза, връщаната стойност на pg_query показва успех или не, както за всяко "изявление за полезност". При повреда трябва да върне false. Например:

 if (!pg_query($cnx, "deallocate foobar")) {
   echo "Error deallocate: " . pg_last_error($cnx);
 }
 else {
  echo "deallocate successful";
 }

Това показва:

Обърнете внимание, че името на оператора за освобождаване не трябва да бъде заобиколено от единични кавички, защото това е идентификатор, а не литерал на низ. Ако трябва да бъде ограден поради проблемни символи, това може да се направи с pg_escape_identifier (php> =5.4.4)

За да почистите сесия, дори не е необходимо да преглеждате подготвените изрази и да ги освобождавате един по един, можете да извикате DEALLOCATE ALL вместо това все още с pg_query .

Има и друг израз, който извършва повече почистване в една заявка:DISCARD ALL

Освен това нищо от това дори не е необходимо, ако скриптът наистина прекъсне връзката с postgres, тъй като подготвените изрази са локални за тяхната родителска сесия и умират с нея.

Изричното почистване е необходимо, когато се използва повторно използване на връзка между скриптове, или с постоянни връзки от PHP (pg_pconnect ), или пул за свързване като pgBouncer (въпреки че самият пулър може да извика DISCARD ALL в зависимост от конфигурацията му).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Автоматичното увеличение на PostgreSQL се увеличава при всяка актуализация

  2. Приложете „trim()“ и „regexp_replace()“ върху текстов масив

  3. SQL:Как да обединим дубликати, които не са чувствителни към главни и малки букви

  4. Еквивалентност на от dual в PostgreSQL

  5. PDO получава частични секунди от Postgres