Framework

Classe Sql

Table des matières

Introduction



La classe SQL permet d'effectuer des requêtes dans la base de données. Son principal intérêt est qu'il y a une classe SQL par [url=http://fr.wikipedia.org/wiki/Système_de_gestion_de_base_de_données]Système de Gestion de Base de Données[/url] (SGBD) et on utilise celle correspondant au SGBD de l'utilisateur.



Pourquoi utiliser cette classe ?



PHPBoost supportant différents SGBD, il doit contenir un objet permettant la liaison avec ces différents systèmes sachant que peu d'entre eux respectent la norme SQL et ils ont tous un fonctionnement légèrement différent. La classe SQL permet de faire le lien entre des requêtes génériques et un système en particulier.
Chaque système supporté comporte sa propre classe, l'objet $Sql est le résultat de l'instanciation de la classe correspondant au SGBD utilisé.
Voyons pour être plus clair un schéma qui précise l'utilisé de cette classe.


L'utilisation de cette classe est obligatoire à partir du moment où vous souhaitez utiliser une base de données.



Fonctions disponibles




Connexion



La classe SQL est déjà instanciée dans l'objet $Sql dans l'environnement de PHPBoost et elle est déjà connectée au serveur avec les paramètres entrées par l'administrateur.
Si toutefois vous désirez pousser son fonctionnement, le constructeur la connecte automatiquement si il détecte les paramètres sinon des méthodes de connexion et de choix de la base de données sont disponibles.


Requêtes courantes



Vos requêtes SQL doivent respecter certaines règles, décrite dans l'article Requêtes SQL.


La classe SQL permet d'effectuer les requêtes agissant sur le contenu les plus courantes (SELECT, UPDATE, DELETE, INSERT) ainsi que les requêtes d'administration de base de données les plus fréquentes (CREATE TABLE, ALTER TABLE, DROP TABLE, TRUNCATE).


Lecture d'un fichier SQL



La classe SQL est aussi capable d'interpréter un fichier SQL. Ceci est très utile pour l'installation ou la mise à jour de modules.



Méthodes



Voici la liste des méthodes de cette classe.
Il faut savoir que le nom de la majorité d'entre elles a été choisi tel qu'elles portent le même nom que leurs homologues fonctions de PHP associées à chaque SGBD. Par exemple mysql_fetch_assoc devient sql_fetch_assoc. Cela aidera les habitués à un SGBD particulier.
  • Query() : Exécute une requête simple (sur un seul champ et une seule ligne) et renvoie son résultat.
  • Query_array() : Effectue une requête sur une seule ligne (un seul tuple) et renvoie son résultat dans un tableau associatif.
  • Query_inject() : Permet de faire des requêtes sans résultat attendu (insertion, suppression, modification...).
  • Query_while() : Exécute une requête (qui peut être très complexe sur plusieurs lignes) et renvoie une ressource sur laquelle il faudra utiliser la méthode Sql_fetch_assoc() pour la parcourir.
  • Count_table() : Compte le nombre d'entrées dans une table.
  • Close() : Libère le résultat d'une requête de la mémoire.
  • Sql_close() : Coupe la connexion courante à la base de données.
  • Sql_connect() : Crée une connexion à un SGBD.
  • Sql_fetch_assoc() : Permet de parcourir dans un tableau associatif le résultat (ressource) d'une requête.
  • Sql_insert_id() : Renvoie le dernier identifiant enregistré.
  • Sql_limit() : Formate correctement le marqueur permettant de borner les résultats à la syntaxe de chaque SGBD. (LIMIT sur MySQL).
  • Sql_concat() : Concatène deux ou plusieurs chaines
  • Sql_num_rows() : Renvoie le nombre de lignes du résultat d'une requête.
  • Sql_select_db() : Sélectionne une base de données disponible sur le SGBD auquel l'objet est connecté.



Voiçi la liste complémentaire de fonctions peu utilisées (notamment dans les modules) mais présente dans la classe SQL.
  • Sql_affected_rows() : Renvoie le nombre de lignes affectées par la requête passé en paramètre.
  • Sql_date_diff(): Retourne le nombre d'année entre la date et aujourd'hui.
  • Sql_fetch_row() : Permet de parcourir dans un tableau à indexation numérique le résultat (ressource) d'une requête.
  • Sql_list_fields() : Liste les champs d'une table.
  • Sql_list_tables() : Liste les tables de la base à laquelle l'objet est actuellement connecté.
  • Highlight_query(): Colore une requête SQL.
  • Indent_query() Indente une requête SQL.
  • Sql_parse(): Interprète un fichier SQL.
Cette page a été vue 3218 fois