Accueil > > > [POO] CLASSE D'ABSTRACTION SQL
[POO] CLASSE D'ABSTRACTION SQL
Information sur la source
Description
Salut, Ma première source n'était pas terrible du tout, j'espère avoir fait mieux cette fois-ci. C'est un grand classique, il s'agit d'une classe d'abstraction SQL, permettant de se connecter à un serveur MySQL (classe concrète fournie) ou PostGreSQl (classe concrète en cours d'écriture) ou tout autre pour peu qu'on écrive la classe concrète qui va avec (ce qui ne fait pas grand chose). La classe est écrite en php5 et n'est pas compatible avec php4 J'ai abandonné l'idée de chargement de requêtes via un fichier xml à l'instanciation de la classe, c'est pas tellement utile. Il suffit d'utiliser la méthode prepare() dans une fonction de 5 lignes pour parvenir au même résultat que ce que j'avais déjà fait. Le package se compose de plusieurs fichiers, dont voici le détail : - DB.class.php : La classe abstraite - DB.config.php : La configuration de connexion (nom d'utilisateur, serveur, etc) - DB.param.php : La configuration de la classe (connexion automatique, classe d'Exception à lancer en cas d'erreur) - mysql.class.php : La classe concrète pour MySQL Un bout de code illustre l'utilisation de la classe.
Source
- <?php
- require('mysql.class.php');
- try {
- $db = new MySQL();
- $db -> query('SELECT config_name, config_value FROM config');
- $arr = $db -> fetch_assocset();
- foreach ($arr as $item)
- {
- $config[$item['config_name']] = $item['config_value'];
- }
- $db -> prepare('exemple', 'SELECT user_id, user_name, password FROM users WHERE user={1} LIMIT 1');
- $db -> execute('exemple', 'Neigedhiver');
- $user_data = $db -> fetch_assoc();
- if ($user_data['password'] != sha1('Mot2Passe'))
- {
- throw new Exception('Incorrect_Password');
- }
- }
- catch (Exception $e) {
- echo $e -> getMessage();
- echo '<pre>';
- echo $e -> getTraceAsString();
- echo '</pre>';
- }
- ?>
<?php
require('mysql.class.php');
try {
$db = new MySQL();
$db -> query('SELECT config_name, config_value FROM config');
$arr = $db -> fetch_assocset();
foreach ($arr as $item)
{
$config[$item['config_name']] = $item['config_value'];
}
$db -> prepare('exemple', 'SELECT user_id, user_name, password FROM users WHERE user={1} LIMIT 1');
$db -> execute('exemple', 'Neigedhiver');
$user_data = $db -> fetch_assoc();
if ($user_data['password'] != sha1('Mot2Passe'))
{
throw new Exception('Incorrect_Password');
}
}
catch (Exception $e) {
echo $e -> getMessage();
echo '<pre>';
echo $e -> getTraceAsString();
echo '</pre>';
}
?>
Conclusion
La classe peut soit lancer des exceptions de la classe Exception native de php5, soit une classe étendue personnalisée. Cela se paramètre dans le fichier DB.param.php en renseignant le nom de la classe à utiliser. Il faut donc impérativement (pour que le code soit propre) utiliser une syntaxe avec des blocs try/catch, ou bien utiliser une fonction de de gestion des exception définie par set_exception_handler().
Les fonctions publiques implémentées à l'heure actuelle sont : - connect() - disconnect() - query() - prepare() : cette méthode simule le comportement de la fonction php pg_prepare spécifique à PostGreSQL. Elle "stocke" une requête pour utilisation ultérieure. S'utilise avec execute() - execute() : execute une requête stockée avec prepare(). Des paramètres peuvent figurer dans la requête, comme illustré dans le code ci-dessus. - fetch_row, fetch_array, fetch_assoc : retourent une ligne sous forme respectivement de tableau numérique, numérique et associatifg, associatif. - fetch_arrowset, fetch_arrayset, fetch_assocset : retournent un tableau numérique contenant le résultat des fonctions précédentes - num_rows, affected_rows Il s'agit du minimum vital.
Les variables publiques accessibles sont : - sql : On peut y stocker une requête. Par défaut, la fonction query() utilise cette variable si aucune requête n'est passée en argument. - num_queries : nombre de requêtes exécutées par la méthode query() (qui est également appelée par la méthode execute() ) - result : par défaut, les fonctions prenant un résultat en argument utilisent cette variable, qui est automatiquement renseignée par query(). On peut leur passer une autre ressource résultat (facultatif).
Le code est normalement assez clair et documenté pour qu'on comprenne aisément ce qui s'y passe.
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Récupérer données d'une base sql [ par Billybobbonnet ]
Bonjour,Je suis débutant en php/sql et je ne sais pas comment récupérer les valeurs d'une ligne de table SQL dans des variables. Voilà la commande qui
Formulaire complexe avec connexion php/mysql [ par baxhax ]
bonjour les amis Salut, je suis dans l'impasse, je suis débutant dans php et je dois faire un projet de recherche pour créer une base de données ave
Cr&ation de Base de Données [ par JLB59 ]
A tous ceux qui ont essayés de m'aider à résoudre mon problème, je les en remercie.Voilà ce que j'ai trouvé :<?php$link = mysql_connect('localhost'
communication entre php et excel [ par developinform ]
Bonjour; Je veux importer des données d'une feuille Excel a une base de données sous Mysql (en utilisant le php ou non). Alors est ce que c'
En PHP, créer une base de données simples [ par JLB59 ]
Bonjour à tous,Voilà, j'utilise EasyPHP et je voulais savoir s'il est possible de créer une base et une table .sql à partir de PHP.Vous allez me dire
mettre les données du SQL dans une page PHP [ par djteuf ]
Bonjour a tousJ'aimerais avoir toutes les infos dans une page PHP de qui sont réaliser avec cette structure que j'ai en image plus bas.C'est simplemen
Pb base de données sql php [ par maxxou56 ]
Je souhaiterais réalisé une page php a partir dune base de données Voici mes deux tables:ARTISTE (nom_artiste, image_artiste, type_musique, nationalit
Redirect PHP [ par Stephane0000 ]
Bonjour,Mon projet se compose de trois pages en php. Sur la première page j'ai un formulaire dont les données sont traitées sur la seconde page (les d
base de données [ par astuces_jeux ]
bonjour,je suis un utilisateur d'ifrance et ont fait ma base de données pour moi,j'ai créer une base de donnée avec phpmyadmin : SQL.inscriptionjai un
connection entre page php et la Base de données [ par selma2ce ]
svp aider moi ; je veux faire la connection à ma base de donnée. j'ai fait un site web (de débutant) et à la page commande j'ai fait un formulaire à r
|
Derniers Blogs
[RIA SERVICES] INCLUDE ET DOMAINDATASOURCE[RIA SERVICES] INCLUDE ET DOMAINDATASOURCE par Audrey
Dans un de mes articles précédents , j'avais parlé des DomainDataSource avec RIA Services dans le cas d'une interface Maître - Détail. Dans le même principe, je vais parler d'une autre manière de mettre en forme ce cas d'interface avec RIA Services. Et po...
Cliquez pour lire la suite de l'article par Audrey ZUNE : VERSION ZUNE SOFTWARE V 4.2 ET LA SOCIALISATIONZUNE : VERSION ZUNE SOFTWARE V 4.2 ET LA SOCIALISATION par ROMELARD Fabrice
Une des nouveautés de la version V 3.0 était l'apparition de l'onglet Social qui ne fonctionnait que si le MarketPlace était activé sur son poste. Cela limitait donc son intérêt, car hors du cadre commercial USA-CANADA, peu de monde trouva...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice PRATIQUE DE SILVERLIGHT PAR ERIC AMBROSIPRATIQUE DE SILVERLIGHT PAR ERIC AMBROSI par MPOWARE
Je viens de finir la lecture du dernier livre d'
Eric Ambrosi
éditions PEARSON
Son livre donne une approche pratique de Silverlight qui sera aussi bien comprise par le développeur que par le designeur.
Tous les aspects du développement RIA sont abor...
Cliquez pour lire la suite de l'article par MPOWARE APPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NETAPPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NET par odewit
2 déclinaisons de Silverlight et 2 déclinaisons de Mono permettent dorénavant (ou permettront prochainement) de développer des applications .NET mobiles pour les principales plates-formes du marché :
Silverlight pour Symbian, basé sur Silverlight 2...
Cliquez pour lire la suite de l'article par odewit ZUNE : NOUVELLE VERSION DU ZUNE SOFTWARE - V 4.2ZUNE : NOUVELLE VERSION DU ZUNE SOFTWARE - V 4.2 par ROMELARD Fabrice
Avec la dernière génération du lecteur MP3 de Microsoft, le ZUNE HD, Microsoft a publié une nouvelle version du logiciel pour PC. Ainsi, je me suis décidé à installer celle-ci sur mon Tablet PC ACER, comme toujours le logiciel est donc tél...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|