pg_prepare
(PHP 5 >= 5.1.0, PHP 7, PHP 8)
pg_prepare —
Envoie une requête pour créer une requête préparée avec les paramètres
donnés et attend l'exécution
Description
pg_prepare(resource $connection
= ?, string $stmtname
, string $query
): resource|false
La fonction crée une requête préparée nommée
stmtname
à partir de la chaîne
query
, celle-ci doit contenir qu'une seule commande
SQL. stmtname
peut être vide ("") pour créer une
requête qui n'est pas nommée. Dans ce cas, les requêtes qui existaient et
qui se trouvaient sans noms sont automatiquement remplacées; autrement, il y
aura une erreur si le nom de la requête est déjà défini dans la session
courante. Si des paramètres sont utilisés, ils sont référés à $1, $2, etc.
dans query
.
Des requêtes préparées à utiliser avec pg_prepare()
peuvent être aussi créées en exécutant la requête SQL
PREPARE
. (Par contre, pg_prepare()
est plus flexible puisqu'elle ne nécessite pas que les types des paramètres
soit préspécifiés.) De plus, bien qu'il n'y a pas de fonction PHP pour
supprimer une requête préparée, la requête SQL
DEALLOCATE
peut être utilisé pour ce motif.
Liste de paramètres
-
connection
-
La ressource de connexion de la base de données PostgreSQL. Lorsque
connection
n'est pas présent, la connexion par
défaut est utilisée. La connexion par défaut est la dernière connexion
faite par pg_connect() ou pg_pconnect().
-
stmtname
-
Le nom à donner à la requête préparée. Il doit être unique à chaque
session. Si une chaîne vide est spécifiée ("") alors une requête sans
nom est créée, écrasant les requêtes sans noms précédemment définies.
-
query
-
La requête SQL avec ses paramètres. Elle doit contenir seulement une seule
requête. Plusieurs requêtes séparées par des points-virgules ne sont
pas autorisées. Si des paramètres sont utilisés, ils sont référés à
$1, $2, etc.
Valeurs de retour
Une ressource de résultats en cas de succès ou false
si une erreur survient.
Exemples
Exemple #1 Exemple avec pg_prepare()
<?php
// Connexion à une base de données nommée "marie"
$dbconn = pg_connect("dbname=marie");
// Prépare une requête pour l'exécution
$result = pg_prepare($dbconn, "my_query", 'SELECT * FROM magasins WHERE nom = $1');
// Exécute la requête préparée. Notez qu'il n'est pas nécessaire d'échapper
// la chaîne "Joe's Widgets"
$result = pg_execute($dbconn, "my_query", array("Joe's Widgets"));
// Exécute la même requête préparée, cette fois avec un paramètre différent
$result = pg_execute($dbconn, "my_query", array("Vêtements Vêtements Vêtements"));
?>
Voir aussi
- pg_execute() - Exécute une requête préparée PostGreSQL
- pg_send_execute() - Envoie une requête pour exécuter une requête préparée avec des paramètres
donnés, sans attendre le(s) résultat(s)