sql >> Database >  >> RDS >> PostgreSQL

Om vragen te begrijpen in PHP PG -voorbereide statements

Je geposte voorbeeld slaat nergens op - pg_prepare() en pg_query_params() zijn onafhankelijke functies met verschillende doeleinden die u normaal gesproken niet samen zou gebruiken.

pg_prepare() bereidt een instructie (een query) voor voor latere uitvoering via pg_execute() . Dit wordt gedaan als mogelijke optimalisatie - als u van tevoren weet dat u de instructie vele malen achter elkaar zult moeten uitvoeren, kan het voorbereiden van het vooraf wat werk op de databaseserver besparen, omdat het niet (opnieuw) hoeft voor te bereiden de verklaring voor elk gesprek.

pg_query_params() (evenals de 'eenvoudigere' versie pg_query() ) voert de instructie (query) gewoon rechtstreeks uit, waardoor de databaseserver wordt gedwongen om de instructie (opnieuw) voor te bereiden telkens wanneer de functie wordt aangeroepen.

Dus in het kort, dit

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

geeft u exact hetzelfde resultaat als dit

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

Het enige verschil is dat je in het tweede geval nog steeds de voorbereide instructie hebt, klaar om opnieuw te gebruiken voor meer aanroepen naar pg_execute() - daarom kun je het een naam geven, omdat je op die manier verschillende voorbereide instructies op dezelfde verbinding kunt hebben die je kunt uitvoeren zoals je wilt, vele malen, in willekeurige volgorde.




  1. Gegevens ophalen uit PostgreSQL met Powershell

  2. mysql- Hoe subsidies toe te passen op kolom?

  3. kan geen gegevens van de ene tabel naar een andere tabel opslaan

  4. Bereken het aantal records voor elke datum tussen 2 datums