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 singlecolumnetsingleresult:- 
singlecolumn = falseetsingleresult = 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 = falseetsingleresult = 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 = trueetsingleresult = false
- 
Le résultat est un tableau. 
 Chaque élément du tableau contient la valeur de la première colonne duselect.Si aucun résultat pour la requête n'est trouvé, la valeur retournée est un tableau vide. 
- 
singlecolumn = trueetsingleresult = 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 à truesi une seule colonne doit être retournée.
- (bool) singleresult
- Mettre à truesi 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
 Sitrue: en cas d'erreur une exception est déclenchée. Sinull: traitement d'erreur par défaut (se reporter au paramètre applicatifCORE_SQLSTRICT).
17.4.2.3 Valeur de retour
- string
- Message d'erreur si l'argument useStrictestfalse.
17.4.2.4 Erreurs / Exceptions
- Si useStrictestfalsealors un message d'erreur est retourné. Si le message est vide, cela indique que la requête s'est déroulée correctement.
- Si useStrictesttrueune exception\Dcp\Db\Exceptionest déclenchée si la requête échoue.
- Si useStrictestnull(valeur par défaut), le retour d'erreur dépend du paramètre applicatifCORE_SQLSTRICT. Par défaut, la valeurCORE_SQLSTRICTestyes, ce qui est équivalent àuseStrictesttrue.
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.