sql >> Databasteknik >  >> RDS >> PostgreSQL

För att förstå frågor i PHP PG-förberedda uttalanden

Ditt upplagda exempel är inte vettigt - pg_prepare() och pg_query_params() är oberoende funktioner med olika syften som du normalt inte skulle använda tillsammans.

pg_prepare() förbereder en sats (en fråga) för senare exekvering via pg_execute() . Detta görs som en potentiell optimering - om du i förväg vet att du kommer att behöva exekvera satsen många gånger i rad, kan förbereda den i förväg spara en del arbete på databasservern, eftersom den inte behöver (åter)förbereda uttalandet för varje samtal.

pg_query_params() (liksom dess "enklare" version pg_query() ) kör bara satsen (frågan) direkt, vilket tvingar databasservern att (om)förbereda satsen varje gång funktionen anropas.

Så kort sagt, det här

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

ger dig exakt samma resultat som detta

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

Den enda skillnaden är att i det andra fallet har du fortfarande den förberedda satsen redo att återanvändas för fler anrop till pg_execute() - det är därför du kan ge det ett namn, eftersom du på så sätt kan ha olika förberedda uttalanden på samma anslutning som du kan utföra som du vill, många gånger, i godtycklig ordning.




  1. Gör en kopplingsförfrågan i loopback.io

  2. Fel:Kan inte hämta en rad från OLE DB-leverantör ADsDSOObject för länkad server ADSI

  3. Ta bort rader från flera tabeller i MySQL

  4. Hämta det senaste kända värdet för varje kolumn i en rad