# pg_query

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_query — Exécute une requête PostgreSQL

### Description

pg_query(PgSql\Connection `$connection` = ?, string `$query`): PgSql\Result|false

pg_query() exécute la requête `query` sur la base de données spécifiée `connection`. pg_query_params() doit être préféré dans la plupart des cas.

Si une erreur se produit et `false` est retourné, les détails de l'erreur peuvent être récupérés en utilisant la fonction pg_last_error() si la connexion est valide.

> Note: Bien que `connection` puisse être omis, il n'est pas recommandé de le faire, car il peut se révéler difficile de retrouver les bogues dans les scripts.

> Note:

> Auparavant, cette fonction s'appelait pg_exec(). pg_exec() est toujours disponible pour des raisons de compatibilité, mais les utilisateurs sont encouragés à utiliser le nouveau nom.

### Liste de paramètres

`connection`

  Une instance PgSql\Connection. Quand `connection` est pas spécifié, la connexion par défaut est utilisé. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect()

  Avertissement

  À partir de PHP 8.1.0, utiliser la connexion par défaut est obsolète.

`query`

  La requête ou les requêtes SQL à être exécutées. Lorsque plusieurs requêtes sont passées à la fonction, elles sont automatiquement exécutées comme étant une transaction, à moins qu'il y aille les commandes BEGIN/COMMIT incluses dans la requête. Cependant, l'utilisation de transactions multiples dans un seul appel de fonction n'est pas recommandée.

  Avertissement

  L'inperpolation des chaînes de caractères fournies par l'utilisateur est extrèmement dangereux et vous devez garder en tête l'ensemble des vulnérabilités concernant les injections SQL. Dans la plupart des cas, la fonction pg_query_params() doit être préférée ; il est préférable de passer les valeurs fournies par l'utilisateur comme paramètres, plutôt que de les substituer dans la requête.

  Toutes données utilisateur substituées directement dans la chaîne de la requête doivent être proprement échappées.

### Valeurs de retour

Une instance PgSql\Result en cas de succès, ou `false` si une erreur survient.

### Historique

Version | Description
--- | ---
8.1.0 | Retourne désormais une instance de PgSql\Result instance ; auparavant, une resource était retourné.
8.1.0 | Le paramètre `connection` attend désormais une instance de PgSql\Connection ; auparavant, une resource était attendu.

### Exemples

Exemple #1 Exemple avec pg_query()

`<?php
$conn = pg_pconnect("dbname=publisher");
if (!$conn) {
echo "Une erreur s'est produite.\n";
exit;
}
$result = pg_query($conn, "SELECT auteur, email FROM auteurs");
if (!$result) {
echo "Une erreur s'est produite.\n";
exit;
}
while ($row = pg_fetch_row($result)) {
echo "Auteur: $row[0] E-mail: $row[1]";
echo "<br />\n";
}
?>`

Exemple #2 Utilisation de pg_query() avec plusieurs requêtes

`<?php
$conn = pg_pconnect("dbname=publisher");
// ces requêtes seront exécutées en tant qu'une seule transaction
$query = "UPDATE authors SET author=UPPER(author) WHERE id=1;";
$query .= "UPDATE authors SET author=LOWER(author) WHERE id=2;";
$query .= "UPDATE authors SET author=NULL WHERE id=3;";
pg_query($conn, $query);
?>`

### Voir aussi

- pg_connect() - Établit une connexion PostgreSQL
- pg_pconnect() - Établit une connexion PostgreSQL persistante
- pg_fetch_array() - Lit une ligne de résultat PostgreSQL dans un tableau
- pg_fetch_object() - Lit une ligne de résultat PostgreSQL dans un objet
- pg_num_rows() - Retourne le nombre de lignes PostgreSQL
- pg_affected_rows() - Retourne le nombre de lignes affectées