pg_select
(PHP 4 >= 4.3.0, PHP 5, PHP 7)
pg_select — Effectue une sélection PostgreSQL
Description
$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.
Liste de paramètres
-
connection
-
Ressource de connexion de base de données PostgreSQL.
-
table_name
-
Nom 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
ouPGSQL_DML_STRING
combinée. SiPGSQL_DML_STRING
fait partie deoptions
alors la requête est retournée sous forme de chaîne de caractères. Lorsque la constantePGSQL_DML_NO_CONV
ou la constantePGSQL_DML_ESCAPE
est définie, aucun appel à la fonction pg_convert() ne sera effectué en interne.
Valeurs de retour
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
.
Exemples
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";
}
?>
Historique
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.
|
Voir aussi
- pg_convert() - Convertit des valeurs d'un tableaux associatifs en une forme convenable pour des requêtes SQL
Version en cache
03/01/2025 21:17:51 Cette version de la page est en cache (à la date du 03/01/2025 21:17:51) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-pg-select.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.