09.06.2015 Views

WordPress 3

  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

326 <strong>WordPress</strong> côté développeur : concevoir une extension<br />

Pour comprendre l’intérêt de cette méthode, rien ne vaut un exemple. Avant prepare(),<br />

pour sécuriser une fonction, on faisait :<br />

function jajoute( $valeur1, $valeur2 ){<br />

global $wpdb;<br />

// On sécurise<br />

$valeur1 = $wpdb->escape($valeur1);<br />

$valeur2 = $wpdb->escape($valeur2);<br />

// On exécute la requête<br />

$wpdb->query("INSERT INTO ma_table ( 'champ1', 'champ2' ) VALUES (<br />

'$valeur1', '$valeur2' )");<br />

}<br />

Avec la méthode prepare(), cela donne :<br />

function jajoute( $valeur1, $valeur2 ){<br />

global $wpdb;<br />

// On sécurise et on exécute la requête<br />

$wpdb->query( $wpdb->prepare("INSERT INTO ma_table ( 'champ1', 'champ2' )<br />

VALUES ( %s, %s )", $valeur1, $valeur2 ) );<br />

}<br />

Les deux fonctions font la même chose, mais on voit tout de suite que la méthode prepare()<br />

permet un gain de temps lors du développement et améliore la lisibilité du code de<br />

votre extension.<br />

insert($table, $data, $format = null)<br />

Cette fonction automatise encore un peu plus l’insertion de données dans la base SQL.<br />

Plutôt que d’écrire et sécuriser la requête SQL d’insertion, il est possible d’utiliser la fonction<br />

insert() qui se charge de toute cette partie.<br />

Cette fonction prend deux paramètres : le premier est le nom de la table dans laquelle on<br />

souhaite ajouter les données, le second paramètre doit être le tableau associatif contenant<br />

les valeurs à ajouter.<br />

Par exemple, nous disposons d’une table appelée wp_monplugin. Elle possède trois informations<br />

: id, name et active (ID, le nom et son état).<br />

Vous utiliserez insert() de la façon suivante :<br />

insert( 'wp_monplugin', array('id' => 123, 'name' => 'Le nom', 'active' =><br />

true) )<br />

Ainsi, vous êtes capable d’insérer une ligne de contenu sans écrire un mot de SQL.<br />

Le dernier argument précise le format des données, à choisir entre '%d' (un nombre décimal)<br />

et '%s' (une chaîne). Par défaut, les données sont traitées comme des chaînes.<br />

customer 27921 at Fri Mar 11 19:29:26 +0100 2011<br />

Propriété de Albiri Sigue

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!