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

За разбиране на заявки в PHP PG -подготвени оператори

Вашият публикуван пример няма смисъл - pg_prepare() и pg_query_params() са независими функции с различни цели, които обикновено не бихте използвали заедно.

pg_prepare() подготвя израз (заявка) за по-късно изпълнение чрез pg_execute() . Това се прави като потенциална оптимизация - ако знаете предварително, че ще трябва да изпълните оператора много пъти подред, подготовката му предварително може да спести малко работа на сървъра на базата данни, тъй като не трябва да (повторно) подготвя изявлението за всяко повикване.

pg_query_params() (както и неговата „по-проста“ версия pg_query() ) просто изпълнява оператора (заявката) директно, принуждавайки сървъра на базата данни да (пре)подготвя израза всеки път, когато функцията бъде извикана.

Накратко, това

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

ще ви даде абсолютно същия резултат като този

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

Единствената разлика е, че във втория случай все още имате подготвения израз, готов за повторно използване за повече извиквания на pg_execute() - поради което можете да му дадете име, тъй като по този начин можете да имате различни подготвени изрази за една и съща връзка, които можете да изпълнявате както желаете, много пъти, в произволен ред.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Предаване на множество стойности в един параметър

  2. pg_dump с --exclude-table все още включва тези таблици във фоновите команди COPY, които изпълнява?

  3. Зареждане на CSV данни в таблица на PostgreSQL

  4. Извличане на данни от PostgreSQL DB без използване на pg_dump

  5. Джанго. PostgreSQL. regexp_split_to_table не работи