17.4.2 la fonction SimpleQuery

Cette fonction permet d'envoyer une requête sur la base de données.

17.4.2.1 Description

string simpleQuery (string $dbaccess,
                    string $query,
        array|string|bool &$result       = array() ,
                      bool $singlecolumn = false,
                      bool $singleresult = false,
                 bool|null $useStrict    = null)

Cette fonction permet de récupérer facilement les données directement depuis la base de données.

17.4.2.1.1 Avertissements

La requête est exécutée directement. Il est de la responsabilité du développeur de s'assurer de la validité de la requête et d'éviter les injections.

17.4.2.2 Liste des paramètres

(string) dbaccess
Les coordonnées de la base de données. Si cette valeur est vide, ce sont les coordonnées de la base Dynacase qui seront utilisées.
(string) query
la requête sql a exécuter
(array|string|bool) result

La forme du résultat dépend des paramètres singlecolumn et singleresult :

singlecolumn = false et singleresult = false

Le résultat est un tableau à deux dimensions.
Chaque rangée de premier niveau contient un tableau indexé avec les noms des colonnes retournées.

Si aucun résultat pour la requête n'est trouvé, le résultat est un tableau vide.

singlecolumn = false et singleresult = true

Le résultat est un tableau indexé.
L'index correspond aux noms des colonnes retournées.

Si aucun résultat pour la requête n'est trouvé, la valeur retournée est un tableau vide.

singlecolumn = true et singleresult = false

Le résultat est un tableau.
Chaque élément du tableau contient la valeur de la première colonne du select.

Si aucun résultat pour la requête n'est trouvé, la valeur retournée est un tableau vide.

singlecolumn = true et singleresult = true

Le résultat est une chaîne de caractère.
Elle contient la valeur de la première colonne du premier résultat trouvé.

Si aucun résultat pour la requête n'est trouvé, la valeur retournée est false.

(bool) singlecolumn
Mettre à true si une seule colonne doit être retournée.
(bool) singleresult
Mettre à true si un seul résultat doit être retourné.
(bool|null) useStrict
Si false : en cas d'erreur pas d'exception déclenchée mais une erreur retournée
Si true : en cas d'erreur une exception est déclenchée. Si null : traitement d'erreur par défaut (se reporter au paramètre applicatif CORE_SQLSTRICT).

17.4.2.3 Valeur de retour

string
Message d'erreur si l'argument useStrict est false.

17.4.2.4 Erreurs / Exceptions

  • Si useStrict est false alors un message d'erreur est retourné. Si le message est vide, cela indique que la requête s'est déroulée correctement.
  • Si useStrict est true une exception \Dcp\Db\Exception est déclenchée si la requête échoue.
  • Si useStrict est null (valeur par défaut), le retour d'erreur dépend du paramètre applicatif CORE_SQLSTRICT. Par défaut, la valeur CORE_SQLSTRICT est yes, ce qui est équivalent à useStrict est true.

17.4.2.5 Historique

Aucun.

17.4.2.6 Exemples

17.4.2.6.1 Requête générale

Récupération des identifiants login des 3 premiers comptes trouvés.

$sql = sprintf("SELECT id, login FROM users LIMIT 3");
simpleQuery('', $sql, $results);
print_r($results);

Résultat :

Array
(
    [0] => Array
        (
            [id] => 14
            [login] => cash
        )
    [1] => Array
        (
            [id] => 15
            [login] => zoo.garde
        )
    [2] => Array
        (
            [id] => 16
            [login] => zoo.veto
        )
)

17.4.2.6.2 Requête un seul résultat et plusieurs colonnes

Récupérer le login et l'adresse de courriel de l'utilisateur n°14.

$idUser=14;
$sql = sprintf("SELECT login, mail FROM users WHERE id=%d", $idUser);
simpleQuery('', $sql, $results, false, true);
 
print_r($results); 

Résultat :

Array
(
    [login] => cash
    [mail] => cash@example.net
)

17.4.2.6.3 Requête plusieurs résultats et une seule colonne

Récupération des références des groupes d'utilisateurs :

$sql = sprintf("SELECT login FROM users WHERE accounttype='G'");
simpleQuery('', $sql, $results, true, false);
print_r($results);

Résultat :

Array
(
    [0] => all
    [1] => gadmin
    [2] => security
    [3] => care
)

17.4.2.6.4 Requête un seul résultat et une seule colonne

Récupérer le login et l'adresse de courriel de l'utilisateur dont le login est zoo.userone.

$userLogin="zoo.userone";
$sql = sprintf("SELECT mail FROM users WHERE login='%s'", 
                pg_escape_string($userLogin));
simpleQuery('', $sql, $result, true, true);
printf("mail = [%s]\n",$result); 

Résultat :

mail = [one@example.net]

Note : Ne pas oublier d'échapper les chaînes de caractères lors de la composition d'une requête avec des variables de chaîne de caractère.

17.4.2.7 Voir aussi

×