V. Développer avec PHPBoost

Exécuter des requêtes SQL

Dernière mise à jour : 04/01/2016 à 17h15
PHPBoost possède son propre système de gestion des requêtes SQL.
Il a pour but de faciliter le développement et ainsi gagner en productivité.
La classe qui regroupe les différentes fonctions se nomme DBQuerier.
On peut accéder à son objet avec :
Code PHP :
PersistenceContext::get_querier()


Les requêtes



INSERT



Fonction :
InjectQueryResult insert($table_name, array $columns)

Pour insérer un élément en base de donnée, exécuter la commande suivante :
Code PHP :
PersistenceContext::get_querier()->insert('la_table_en_question', array(
    'colonne_1' => 'valeur_1', 
    'colonne_2' => 'valeur_2'
));

Il suffit de renseigner le nom de la table et de fournir un tableau avec pour chaque élément une clé qui correspond au nom de la colonne et une valeur à lui attribuer.
Les caractères spéciaux sont échappés automatiquement, vous n'avez donc pas à le faire manuellement.
Le dernier id inséré peut être récupéré grâce à la fonction get_last_inserted_id() :
Code PHP :
$result = PersistenceContext::get_querier()->insert('la_table_en_question', array(
    'colonne_1' => 'valeur_1', 
    'colonne_2' => 'valeur_2'
));
$inserted_id = $result->get_last_inserted_id();
 

UPDATE



Fonction :
InjectQueryResult update($table_name, array $columns, $condition, array $parameters = array())

Voici un exemple de mise à jour d'un élément en base de données :
Code PHP :
PersistenceContext::get_querier()->update('la_table_en_question', array(
    'colonne_1' => 'valeur_1', 
    'colonne_2' => 'valeur_2'
), 'WHERE id=:id', array('id' => 'identifiant à modifier'));

De la même manière que dans un insert, le deuxième argument de la fonction est un tableau avec les colonnes à modifier.
Les arguments 3 et 4 permettent de définir la condition, c'est à dire quel(s) élément(s) vous souhaitez modifier.
Le troisième argument est la condition. Dans cet exemple, WHERE id=:id. Au lieu de faire de la concaténation, il vous suffit de mettre un double point suivit d'une clé. Dans notre cas c'est :id.
Le quatrième argument est un tableau contenant les valeurs de remplacement. La clé du tableau est celle que vous avez renseigné dans la condition.
Les caractères spéciaux sont également échappés automatiquement.

DELETE



Fonction :
delete($table_name, $condition, array $parameters = array())

Code PHP :
PersistenceContext::get_querier()->delete('la_table_en_question', 'WHERE user_id=:id', array(
    'id' => 'identifiant à supprimer'
));


SELECT



Sélectionner un seul élément



Fonction :
mixed[string] select_single_row($table_name, array $columns, $condition, array $parameters = array())

Code PHP :
PersistenceContext::get_querier()->select_single_row('la_table_en_question', array('les_colonnes_demandées, * pour toutes les colonnes'), 'WHERE id=:id', array(
    'id' => 'identifiant à sélectionner'
));

Sélectionner une seule colonne



Fonction :
string get_column_value($table_name, $column, $condition, array $parameters = array())

Code PHP :
PersistenceContext::get_querier()->get_column_value('la_table_en_question', 'la_colonne_demandée', 'WHERE id=:id', array(
    'id' => 'identifiant à sélectionner'
));

Sélectionner plusieurs colonnes



Fonction :
array select_rows($table_name, array $columns, $condition = 'WHERE 1', $parameters = array())

Code PHP :
PersistenceContext::get_querier()->select_rows('la_table_en_question', array('les_colonnes_demandées, * pour toutes les colonnes'), 'WHERE id=:id', array(
    'id' => 'identifiant à sélectionner'
));

SELECT personnalisé



Fonction :
SelectQueryResult select($query, $parameters = array(), $fetch_mode = SelectQueryResult::FETCH_ASSOC)

Code PHP :
PersistenceContext::get_querier()->select('SELECT toto FROM votre_table WHERE id=:id', array(
    'id' => 'identifiant à sélectionner'
), SelectQueryResult::FETCH_ASSOC ou SelectQueryResult::FETCH_NUM);

COUNT



Fonction :
int count($table_name, $condition = 'WHERE 1', $parameters = array(), $count_column = '*')

Code PHP :
PersistenceContext::get_querier()->count('la_table_en_question', 'WHERE id=:id', array(
    'id' => 'identifiant à compter'
));

TRUNCATE



Fonction :
truncate($table_name)

Code PHP :
PersistenceContext::get_querier()->truncate('la_table_de_votre_module');
Cette page a été vue 8428 fois