BTS S.I.O. 2012-2013 PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais



Documents pareils
PDO : PHP Data Object 1/13

PHP 4 PARTIE : BASE DE DONNEES

PHP. PHP et bases de données

Projet Viticulture - TP 3 : bases de données distantes BTS Services informatiques aux organisations

Introduction à JDBC. Accès aux bases de données en Java

PHP 5. La base de données MySql. A. Belaïd 1

Stockage du fichier dans une table mysql:

Java DataBaseConnectivity

Mysql. Les requêtes préparées Prepared statements

FileMaker 13. Guide ODBC et JDBC

CREATION WEB DYNAMIQUE

INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE

PHP. Bertrand Estellon. 26 avril Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril / 214

LES ACCES ODBC AVEC LE SYSTEME SAS

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

Test de HSQLDB et Comparatif avec Sqlite

contact@nqicorp.com - Web :

Mercredi 15 Janvier 2014

Configuration de plusieurs serveurs en Load Balancing

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

Compte Rendu d intégration d application

Manuel du logiciel PrestaTest.

Spécifications de l'offre Surveillance d'infrastructure à distance

Exonet : sauvegarde automatisée d une base de données

Mysql avec EasyPhp. 1 er mars 2006

La problématique de la Préservation des Bases de Données. Olivier ROUCHON CINES Groupe PIN Jeudi 7 Octobre

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Application web de gestion de comptes en banques

Architectures web/bases de données

//////////////////////////////////////////////////////////////////// Administration bases de données

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

PHP 5.4 Développez un site web dynamique et interactif

SQL Server 2012 Administrez une base de données : Exercices et corrigés

Info0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Information utiles. webpage : Google+ : digiusto/

contact@nqicorp.com - Web :

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

eps Network Services Alarmes IHM

Compte-rendu de projet de Système de gestion de base de données

FileMaker Server 13. Publication Web personnalisée avec XML

SQL MAP. Etude d un logiciel SQL Injection

2 Serveurs OLAP et introduction au Data Mining

laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007

Microsoft OSQL OSQL ou l'outil de base pour gérer SQL Server

Windows Server 2008 R2

Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP)

Pour valider les pré-requis nécessaires, avant d'aborder le TP, répondez aux questions ciaprès

Zope: une plateforme collaborative de développement web open source

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Les bases de données Page 1 / 8

et Groupe Eyrolles, 2006, ISBN :

FileMaker Server 13. Publication Web personnalisée avec PHP

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

Une famille d'applications permettant à toute organisation d'optimiser le suivi et la gestion de ses ressources internes vous présente

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

1 Introduction et installation

Installation et Mise en œuvre de MySQL

CAHIER DES CHARGES D IMPLANTATION

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel.

Dans l'article précédent, vous avez appris

McAfee Security-as-a-Service

NatRcs Ce document présente la liste des nouvelles fonctionnalités de la 7.00, disponible à partir de Mars 2011.

CONNECTEUR PRESTASHOP VTIGER CRM

Installation d'un serveur DHCP sous Windows 2000 Serveur

Création d objet imbriqué sous PowerShell.

Service d'installation et de démarrage de la solution de stockage réseau HP StoreEasy 1000/3000

TP Administration Oracle

Initiation aux bases de données (SGBD) Walter RUDAMETKIN

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2)

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Utilisation d'une base de données SQLite avec OpenOffice.org

PySQLi. Framework d'injection de code SQL

MOTEUR DE WORKFLOW Mise en oeuvre d'openwfe Version septembre 2006

TAGREROUT Seyf Allah TMRIM

Gestion de stock pour un magasin

Gestion des utilisateurs et de leurs droits

Le langage SQL Rappels

L envoi d un formulaire par courriel. Configuration requise Mail Texte Mail HTML Check-list

Bases de Données. Plan

Mise en oeuvre d'une base de données mono-utilisateur avec SQLite

CA Desktop Migration Manager

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO S2-IO2 Bases de données: Jointures, Transactions

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

Bases de Données et Internet

Déploiement d'une base SQL Express

1/ Présentation de SQL Server :

1. Introduction Création d'une macro autonome Exécuter la macro pas à pas Modifier une macro... 5

Clients et agents Symantec NetBackup 7

A. À propos des annuaires

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

Programme détaillé. Administrateur de Base de Données Oracle - SQLServer - MySQL. Objectifs de la formation. Les métiers

Programmer en JAVA. par Tama

Use It Messaging Server V8 Bases

Le langage SQL (première partie) c Olivier Caron

Transcription:

BTS S.I.O. 2012-2013 PHP OBJET Module SLAM4 Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

Table des matières 1 But... 3 2 Les bases :... 3 3 Utilisation d'une classe : Instanciation...3 4 Auto-chargement des classes :...3 5 Accès aux données avec PDO (PHP DATA OBJECT)...3 5.1 Présentation de PDO... 3 5.2 Connexion a une base de données :...3 5.3 Exécution d'une requête :... 4 5.4 Gestion des erreurs :... 5 5.5 Travail à réaliser avec PDO :... 5 PHPRévisionObjetV2.odt Module SLAM4 2 / 6

1 But A partir des connaissances acquises lors du module Slam2, se familiariser avec la programmation objet en PHP. Cette familiarisation est obligatoire avant l'étude des frameworks PHP. Le support de cours sera pris sur internet (site du zero cours de Mr Victor Thuillier). Afin d'être le plus efficace possible, vous serez guidés dans l'analyse du document. Afin d'être actif coder le maximum d'exemples en les enrichissants de données personnelles. 2 Les bases : Comment créer une classe en PHP? Encapsulation : les mots clés qui définissent la visibilité. Attributs : notation a respecter (PEAR) Définition des méthodes. 3 Utilisation d'une classe : Instanciation Mot clé pour instancier une classe. Comment accéder aux attributs. Comment accéder aux méthodes. Passage de paramètres. Codage des accesseurs (Set,Get). Utilisation des constructeurs. Attributs et méthodes static, opérateurs de résolution de portée. 4 Auto-chargement des classes : Utiliser le chargement manuel du fichier contenant la classe. Étudier et mettre en œuvre le mécanisme propre a PHP de l'auto-chargement de classes. 5 Accès aux données avec PDO (PHP DATA OBJECT) 5.1 Présentation de PDO L'extension PHP Data Objects (PDO) définit une interface pour accéder à une base de données depuis PHP. Chaque pilote de base de données implémenté dans l'interface PDO peut utiliser des fonctionnalités spécifiques de chacune des bases de données en utilisant des extensions de fonctions. Il faut utiliser un driver PDO spécifique à la base de données pour accéder au serveur de base de données. PDO (comme ODBC sous Windows) fournit une interface d'abstraction à l'accès de données, ce qui signifie que vous utilisez les mêmes fonctions pour exécuter des requêtes ou récupérer les données quelque soit la base de données utilisée. PDO ne fournit pas une abstraction de base de données : il ne réécrit pas le SQL. 5.2 Connexion a une base de données : Vérifier que PDO est pris en charge sur votre installation de PHP. PHPRévisionObjetV2.odt Module SLAM4 3 / 6

Créer la même table dans MySql et SqlServeur. Créer un script de connexion sur MySql. Créer un script de connexion sur SqlServeur. Les connexions sont établies en créant des instances de la classe de base de PDO. Peut importe quel driver vous voulez utiliser ; vous utilisez toujours le nom de la classe PDO. Le constructeur accepte des paramètres pour spécifier la source de la base de données (connue en tant que DSN) et optionnellement, le nom d'utilisateur et le mot de passe (s'il y en a un). Il suffit pour cela d'exécuter la commande : $dbh = new PDO("type_de_base:host=machine_qui_héberge_la_base;dbname=nom_de_la_base", "nom_d_utilisateur", "mot_de_passe) ; Le type_de_base est une valeur parmi : mssql (FreeTDS/Microsoft SQL Server/Sybase), firebird (Firebird/Interbase 6), informix (IBM Informix Dynamic Server), mysql (MySQL 3.x/4.x/5.x), oci (Oracle Call Interface), odbc (ODBC v3 --IBM DB2 unixodbc et win32 ODBC--)), pgsql (PostgreSQL), sqlite (SQLite 3 et SQLite 2). Lorsque la connexion à la base de données a réussi, une instance de la classe PDO est retournée à votre script. La connexion est active tant que l'objet PDO l'est. Pour clore la connexion, vous devez détruire l'objet en vous assurant que toutes ses références sont effacées. Vous pouvez faire cela en assignant NULL à la variable gérant l'objet. Si vous ne le faites pas explicitement, PHP fermera automatiquement la connexion lorsque le script arrivera à la fin. 5.3 Exécution d'une requête : Après avoir obtenu un objet connexion $dbh (instance de la classe de base de PDO) la syntaxe est simple : $result = $dbh->query(votre_requête) ; La valeur renvoyée (rangée ici dans la variable $result) N'EST PAS le résultat de l'exécution de la requête, mais un objet qui vous permet d'accéder aux résultats grâce aux méthodes d'instance décrites ci-dessous. Exemples d'utilisation : Obtenir le nombre de lignes et de colonnes du résultat d'une requête de type SELECT : $result = $dbh->query('select id FROM table') ; echo $result->rowcount() ; // nombre de lignes echo $result->columncount() ; // nombre de champs Accès aux résultats d'une requête : $result étant un résultat valide renvoyé par $dbh->query(), $result->fetchall() renvoie un tableau à 2 dimensions qui contient les résultats: le premier indice concerne les lignes, le deuxième concerne les colonnes. PHPRévisionObjetV2.odt Module SLAM4 4 / 6

Accès par le nom des colonnes $result = $dbh->query("select * FROM villes"); $data = $result->fetchall(); foreach ( $data as $row ) { echo $row["codepostal"]." - ".$row["ville"]."<br />\n"; Accès par le numéro des colonnes : $result = $dbh->query("select * FROM villes"); $data = $result->fetchall(); foreach ( $data as $row ) { for ($i=0 ; $i<$result->columncount() ; $i++) { echo $row[$i]." ** "; echo "<br />\n"; Accès par le numéro des lignes et le numéro des colonnes (boucles imbriquées) $result = $dbh->query("select * FROM villes"); $data = $result->fetchall(); for ($l=0;$l<$result->rowcount();$l++) { for ($i=0;$i<$result->columncount();$i++) { echo $data[$l][$i]." ** "; echo "<br />\n"; 5.4 Gestion des erreurs : Quand une instruction PDO échoue, aucun message n'est affiché. On peut croire à tort que tout s'est bien passé. Il est donc important de savoir obtenir des informations sur d'éventuelles erreurs. La méthode $db->errorcode() renvoie le code d'erreur associé avec la dernière opération effectuée sur la base de données. Sa valeur est 0 (zéro) si il n'y a pas eu d'erreur. Pour gérer les éventuelles erreurs, les méthodes précédentes peuvent être utilisée de cette façon (ici on exécute une requête $req définie par ailleurs) : Exemple de traitement : $dbh->query($req); // exécution de la requête if ($dbh->errorcode()!=0) { // il y a une erreur echo "<b>erreur</b> sur la requête <tt>$req</tt><br />\n"; $t=$dbh->errorinfo(); // récupération des informations sur l'erreur echo "<b>code erreur SQLSTATE :</b> ".$t[0]."<br />\n"; echo "<b>code erreur spécifique au driver :</b> ".$t[1]."<br />\n"; echo "<b>message d'erreur :</b><blockquote><p>".$t[2]."</p></blockquote>\n"; echo "<b>le programme a été interrompu</b>"; die(); Comme dans les autres langages il est préférable de mettre en place un gestionnaire d'exception et traiter les requête a l'intérieur d'un bloc «try...catch» Pour plus de précisions : http://fr.php.net/manual/fr/pdo.error-handling.php 5.5 Travail à réaliser avec PDO : à partir de l'article :http://www.siteduzero.com/tutoriel-3-34790-pdo-interface-d-acces-aux-bdd.html créer votre propre classe d'accès a une base de donnée et mettre en création, lecture, mise a jour et destruction. Choisir une table nom, prénom et numéro de téléphone. S'inspirer pour cela des exemples fournis dans le polycopié de Mr Victor Thuillier. PHPRévisionObjetV2.odt Module SLAM4 5 / 6

Aide possible : http://studio.jacksay.com/tutoriaux/php/connection-mysql-avec-pdo Me faire parvenir votre travail à : pierre.barais@ltpdampierre (archive de projet netbeans compressé 7z). PHPRévisionObjetV2.odt Module SLAM4 6 / 6