(PHP 4 >= 4.3.0, PHP 5, PHP 7)
pg_select — Effectue une sélection PostgreSQL
$connection
, string $table_name
, array $assoc_array
[, int $options = PGSQL_DML_EXEC
[, int $result_type = PGSQL_ASSOC
]] ) : mixedpg_select() sélectionne les enregistrements par assoc_array qui est au format champ=>valeur. Lorsque la requête réussit, elle retourne un tableau contenant tous les enregistrements et champs qui vérifient la condition spécifiée par assoc_array.
Si options est fournit, pg_convert() est appliqué à assoc_array avec les drapeaux fournit.
Par défaut pg_delete() passe des valeurs brutes. Les valeurs doivent être échappé ou l'option PGSQL_DML_ESCAPE doit être fournit. PGSQL_DML_ESCAPE met des guillemets et échappe les paramètres/idantifiants. Par conséquent, les noms de table/colonnes doivent être sensible à la casse.
Notez que ni l'échappement ni les requêtes préparer peuvent protéger des requêtes LIKE, JSON, Tableaux, Regex, etc. Ces paramètres devraient être traité en fonction de leur contexte. C'est à dire échapper/valider les valeurs.
connectionRessource de connexion de base de données PostgreSQL.
table_nameNom de la table dans laquelle on sélectionne les lignes.
assoc_array
Un tableau à qui les clés sont les noms des champs dans la table
table_name et à qui les valeurs sont les
conditions que la ligne doit vérifier pour être récupérée.
options
N'importe quelle de PGSQL_CONV_FORCE_NULL,
PGSQL_DML_NO_CONV,
PGSQL_DML_ESCAPE,
PGSQL_DML_EXEC,
PGSQL_DML_ASYNC ou
PGSQL_DML_STRING combinée. Si
PGSQL_DML_STRING fait partie de
options alors la requête est retournée sous
forme de chaîne de caractères. Lorsque la constante
PGSQL_DML_NO_CONV ou la constante
PGSQL_DML_ESCAPE est définie, aucun appel à la fonction
pg_convert() ne sera effectué en interne.
Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient. Retourne une chaîne de caractères si
PGSQL_DML_STRING est passé via
options.
Exemple #1 Exemple avec pg_select()
<?php
$db = pg_connect ('dbname=foo');
// Ceci est sûr quelque peu, car toutes les valeurs sont échappées
// Cependant PostgreSSQL supporte les JSON/Tableaux. Ceci ne sont pas
// sûr ni par échappement ni par les requêtes préparés.
$rec = pg_select($db, 'post_log', $_POST, PG_DML_ESCAPE);
if ($rec) {
echo "Lignes lues\n";
var_dump($rec);
} else {
echo "Problème dans les données utilisateur\n";
}
?>
| Version | Description |
|---|---|
| 7.1.0 |
Le paramètre result_type a été ajouté.
|
| 5.6.0 |
La fonction n'est plus expérimentale. Ajout de la constante
PGSQL_DML_ESCAPE ainsi que du support des données
de type TRUE/FALSE et NULL.
|
| 5.5.3/5.4.19 |
Les injections SQL directes dans table_name
et les injections SQL indirectes via les identifiants ont été résolues.
|