Strict Standards: Declaration of action_plugin_importoldindex::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /var/www/sda/1/1/prevalet/lib/plugins/importoldindex/action.php on line 8

Strict Standards: Declaration of action_plugin_importoldchangelog::register() should be compatible with DokuWiki_Action_Plugin::register($controller) in /var/www/sda/1/1/prevalet/lib/plugins/importoldchangelog/action.php on line 157

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/sda/1/1/prevalet/inc/parserutils.php on line 205

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/sda/1/1/prevalet/inc/parserutils.php on line 208

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/sda/1/1/prevalet/inc/parserutils.php on line 389

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/sda/1/1/prevalet/inc/parserutils.php on line 530

Strict Standards: Declaration of cache_instructions::retrieveCache() should be compatible with cache::retrieveCache($clean = true) in /var/www/sda/1/1/prevalet/inc/cache.php on line 291

Deprecated: Function split() is deprecated in /var/www/sda/1/1/prevalet/inc/auth.php on line 154

Warning: Cannot modify header information - headers already sent by (output started at /var/www/sda/1/1/prevalet/lib/plugins/importoldindex/action.php:8) in /var/www/sda/1/1/prevalet/inc/auth.php on line 244

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /var/www/sda/1/1/prevalet/inc/auth.php on line 456

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /var/www/sda/1/1/prevalet/inc/auth.php on line 456

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /var/www/sda/1/1/prevalet/inc/auth.php on line 453

Strict Standards: Only variables should be passed by reference in /var/www/sda/1/1/prevalet/doku.php on line 71

Warning: Cannot modify header information - headers already sent by (output started at /var/www/sda/1/1/prevalet/lib/plugins/importoldindex/action.php:8) in /var/www/sda/1/1/prevalet/inc/actions.php on line 131
les_expressions_sql [Documentation pour Phpmyedit & Phppgedit]
 

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/sda/1/1/prevalet/inc/parser/parser.php on line 66

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/sda/1/1/prevalet/inc/parser/lexer.php on line 292

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/sda/1/1/prevalet/inc/parser/handler.php on line 22

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/sda/1/1/prevalet/inc/parser/handler.php on line 49

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/sda/1/1/prevalet/inc/parser/handler.php on line 213

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/sda/1/1/prevalet/inc/parser/handler.php on line 241

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/sda/1/1/prevalet/inc/parser/handler.php on line 295

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/sda/1/1/prevalet/inc/parser/handler.php on line 328

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/sda/1/1/prevalet/inc/parser/handler.php on line 575

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/sda/1/1/prevalet/inc/parser/xhtml.php on line 939

Il existe une possibilité de définir une expression SQL qui doit être appliqué au domaine particulier lors de la lecture ou de l'écriture dans la base de données. C'est très utile lorsque vous voulez interpréter le le contenu du champ d'une manière différente de celle qui est stockée dans la base de données. Pour être plus clair, voir les exemples suivants.

Exemple 4-34. Lire des expressions SQL

$opts[fdd][surname][sql] = CONCAT(surname, , , firstname);
$opts[fdd][title][sql] = IF(TRIM(title) != ””, title, title2);

Le premier exemple joint (concatenne) le champ nom et prénom. Parce que cela se fait au niveau de la base de données, le tri et la recherche (la page de filtrage dans le tableau) sur ce champ sera fait correctement. De même, dans le deuxième exemple, le champ title2 sera utilisé si le titre est vide. Dans cette manière vous pouvez définir une chaîne statique, qui pout être utilisé dans le cas où un champ est vide. Il suffit juste de substituer une chaîne à guillemets à la place de title2.

De même, vous pouvez utiliser des expression SQL pour le stockage des données dans la base de données.

Exemple 4-35. Ecrire des expressions SQL

$opts[fdd][surname][sqlw] = UPPER($val_qas);
$opts[fdd][title][sqlw] = TRIM(“$val_as”);

Le premier exemple ci-dessus passe le contenu du champ en majuscules lors du stockage dans la base de données terrain. La seconde supprime tous les espaces autour titre avant de l'écrire à la base de données.

Comme un espace réservé pour le champ de contenu, il ya trois variables disponibles.

$val –valeur du champ
$val_as –valeur avec la fonction addslashes() est appliquée
$val_qas –identique à $ val_as avec les guillemets autour

Si $val est some”nice”thing, alors $val_as devient somme\”nice\”thing et $ val_qas devient “some\”nice\”thing”. Vous devez utiliser correctement ces variables dans vos expressions [sqlw], sinon une erreur d'analyse MySQL pourrait se produire. Nous vous recommandons d'utiliser la variable $val_qas à chaque fois que cela est possible, car il est le plus sûr.

Un usage très pratique et utile est l'usage de l'option [sqlw] qui demande explicitement à phpMyEdit de stocker une valeur NULL au lieu d'une chaîne vide pour la colonne particulière. Il existe une différence entre une valeur chaine vide et un NULL. Beaucoup de gens n'aiment pas vraiment les chaînes vides dans leurs tableaux, ils ont donc maintenant possible de les changer pour NULL lorsque l'utilisateur entre tout simplement rien en forme champ de saisie.

Exemple 4-36. Stocker un NULL au lieu d'une chaîne vide

$opts[fdd][col_name][sqlw] = IF($val_qas = ””, NULL, $val_qas);

Un autre exemple de l'usage de [sqlw] est l'utilisation des mots de passe des utilisateurs. C'est une bonne idée pour l'utilisateur d'avoir un mot de passe en utilisant certaines fonctions de hachage bien connues avant un enregistrement dans la base de données. La déclaration suivante est utilisée dans le but d'éviter la répétition de hachage, d'une chaine déjà haché. Cela signifie que si la valeur col_name n'a pas été changé, alors il ne faut pas lui appliquer MD5(). Si la valeur col_name été changé, alors il applique la fonction MD5().

Exemple 4-37. Conserver le mot de passe de hachage MD5

$opts[fdd][col_name][sqlw] = IF(col_name = $val_qas, $val_qas, MD5($val_qas));

 
les_expressions_sql.txt · Dernière modification: 2007/12/13 22:54 par fabrice
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki

Strict Standards: Only variables should be passed by reference in /var/www/sda/1/1/prevalet/doku.php on line 79