Base de données :compléments PDO, SQLite, Mysqli. J-F Dazy J-F Berger

Dimension: px
Commencer à balayer dès la page:

Download "Base de données :compléments PDO, SQLite, Mysqli. J-F Dazy J-F Berger"

Transcription

1 Base de données :compléments PDO, SQLite, Mysqli J-F Dazy J-F Berger Séance 6 23 Mars 2009

2 PDO PHP Data Objects Séance 6 23 Mars 2009

3 L'extension PHP Data Objects (PDO) interface d'abstraction à l'accès à une base de données : Standard d'accès à des bases de données pour les applications PHP PDO requiert les nouvelles fonctionnalités OO fournies par PHP 5 et donc, ne fonctionne pas avec les versions antérieures de PHP. PDO est fourni avec PHP 5.1 (extension PECL pour php5.0) Documentation : Ainsi une application PHP ne sera plus liée à une seule base (le plus souvent MySQL), mais à PDO, et donc à n'importe quel SGBD ( SQLite, MySQL, PostgreSQL, Oracle, Sybase, SQL Server,... ) Pourquoi PDO? les fonctions PHP d'utilisation des SGBD sont très différentes tant dans leur implémentation que dans leurs noms. PDO permet de se connecter à différentes bases de données avec une même fonction, (y compris en émulant certaines fonctions absentes des SGBD les moins fournis ) => PORTABILITE ACCRUE 3

4 Installation PDO Il faut,soit par l administration php, soit dans php.ini directement Activer dans php.ini extension=php_pdo.dll : l extension offrant une couche d'abstraction d accès à des bases de données. vous ne pouvez exécuter aucune fonction de base de données en utilisant l'extension PDO par elle-même ; vous devez utiliser un driver PDO spécifique à la base de données pour accéder au serveur de base de données : Activer les extensions spécifiques des BD désirées parmi les disponibles: extension=php_pdo.dll extension=php_pdo_firebird.dll extension=php_pdo_mssql.dll extension=php_pdo_mysql.dll extension=php_pdo_oci.dll extension=php_pdo_oci8.dll extension=php_pdo_odbc.dll extension=php_pdo_pgsql.dll extension=php_pdo_sqlite.dll NB : Les extensions disponibles sont visibles dans wamp/bin/php/php2.5.2/ext easyphp 2.0/php5/ext (ne pas y toucher ) 4

5 PDO : Installation : php.ini exemple EXEMPLE php.ini (parti de ) extension=php_pdo.dll //extension pdo activée ;extension=php_pdo_firebird.dll //non activée (;) ;extension=php_pdo_mssql.dll //non activée (;) extension=php_pdo_mysql.dll //driver pdo mysql activé ;extension=php_pdo_oci.dll //non activée (;) ;extension=php_pdo_oci8.dll ;extension=php_pdo_odbc.dll //non activée (;) extension=php_pdo_pgsql.dll //driver pdo postgresql activé ;extension=php_pdo_sqlite.dll //non activée (;). Avec cette configuration php,on pourra utiliser les deux types de bases sous l interface PDO 5

6 PDO utilisation : connexion Une fois cette configuration faite, on connectera à différentes bases de données avec une même fonction, en ne modifiant que certains arguments : un changement de SGBD se fait simplement en modifiant l'instanciation de l'objet de la classe PDO! Connexion :Les connexions sont établies en créant des instances de la classe de base de PDO Exemple : // MySQL $dbh = new PDO( mysql:host=localhost;dbname=basededonnees, identifiant, motdepasse); // PostgreSQL $dbh = new PDO( pgsql:host=localhost port=5432 dbname=basededonnees user=identifiant password=motdepasse ); Fermeture de la connexion $dbh = NULL; 6

7 Gestions des exceptions try { code... Catch(PDOException $monexception) { echo 'Error de connection à MySQL!: '.$monexception->getmessage(); exit() Pour des connexions persistantes, on utilisera <?php $dbh = new PDO ( mysql:host=localhost;dbname=basededonnees, identifiant,motdepasse, array( PDO::ATTR_PERSISTENT => true) );?> 7

8 Transactions et validation automatique PDO gère les transactions avant d'exécuter des requêtes Les transactions : 4 fonctionnalités : Atomicité, Consistance, Isolation et Durabilité (ACID). Ne sont pas toujours supportées dans les SGBD PDO doit s'exécuter en mode "auto-commit" lorsqu on ouvre pour la première fois la connexion, cad : toutes les requêtes ont leurs transactions implicites, si la base de données le supporte aucune transaction si la base de données ne les supporte pas. Quand on a besoin d une transaction: méthode PDO->beginTransaction() pour l'initialiser (Si le driver utilisé ne supporte pas les transactions, une exception PDO sera lancée ) Et la méthode PDO->commit() (valide) ou PDO->rollBack() (annule) pour la terminer, suivant le succès de votre code durant la transaction. catch (Exception $e) { $dbh->rollback(); echo "Échec : ". $e->getmessage(); 8

9 Intérêt des requêtes préparées La requête ne doit être analysée (ou préparée) qu'une seule fois, mais peut être exécutée plusieurs fois avec des paramètres identiques ou différents. Lorsque la requête est préparée, la base de données va analyser, compiler et optimiser son plan pour exécuter la requête.. En utilisant les requêtes préparées, vous évitez ainsi de répéter le cycle analyser/compilation/optimisation. Les paramètres pour préparer les requêtes n'ont pas besoin d'être entre guillemets ; le driver le gère pour vous. Si votre application utilise exclusivement les requêtes préparées, vous pouvez être sûr qu'aucune injection SQL n'est possible (Cependant, si vous construisez d'autres parties de la requête en vous basant sur des entrées utilisateurs, vous continuez à prendre un risque). 9

10 Requêtes préparées requête normale : 1 : envoi de la requête par le client vers le serveur 2 : compilation de la requête 3 : plan d'exécution par le serveur 4 : exécution de la requête 5 : résultat du serveur vers le client requête préparée : Phase 1 : 1 : envoi de la requête à préparer 2 : compilation de la requête 3 : plan d'exécution par le serveur 4 : stockage de la requête compilée en mémoire 5 : retour d'un identifiant de requête au client Phase 2 : 1 : le client demande l'exécution de la requête avec l'identifiant 2 : exécution 3 : résultat du serveur au client En PDO : prepare 10

11 Requêtes préparées en PDO :exemple Utilisation de prepare : marqueurs? <?php $stmt = $dbh->prepare("insert INTO TAB (nom, valeur) VALUES (?,?)"); $stmt->bindparam(1, $nom); $stmt->bindparam(2, $valeur); // insertion d'une ligne $nom = 'one'; $valeur = 1; $stmt->execute(); // insertion d'une autre ligne avec différentes valeurs $nom = 'two'; $valeur = 2; $stmt->execute();?> Pour des marqueurs nommés,on aura $stmt = $dbh->prepare ("INSERT INTO TAB (nom, valeur) VALUES (:nom, :valeur)"); $stmt->bindparam(':nom', $nom) $stmt->bindparam(':valeur', $valeur); 11

12 Méthode query (1) PDO->query() : Exécute une requête SQL, retourne un jeu de résultats en tant qu'objet PDOStatement Pour une requête dont on a besoin plusieurs fois, préparer un objet PDOStatement avec la fonction PDO->prepare() exécuter la requête avec la fonction PDOStatement->execute(). Il faudra lier les variables PHP aux marqueurs de positionnement soit par PDOStatement->bindParam(), soit par un tableau, en paramètre de PDOStatement->execute(). Si on ne récupère pas toutes les données du jeux de résultats avant d'exécuter le prochain appel à PDO->query(), l appel peut échouer. Il faut appeler PDOStatement->closeCursor() pour libérer les ressources associées à l'objet PDOStatement avant d'exécuter le prochain appel PDO->query(). 12

13 PDOStatement->fetch() Récupère la ligne suivante d'un jeu de résultat PDO, Liste de paramètres fetch_style détermine la façon dont PDO retourne la ligne. PDO::FETCH_ASSOC: tableau indexé par le nom de la colonne PDO_FETCH_BOTH (défaut): retourne un tableau indexé par les noms de colonnes mais aussi par les numéros de colonnes (commençant à l'indice 0), PDO::FETCH_BOUND: retourne TRUE et assigne les valeurs des colonnes de votre jeu de résultats dans les variables PHP à laquelles elles sont liées avec la méthode PDOStatement->bindParam() PDO::FETCH_LAZY: combine PDO::FETCH_BOTH et PDO::FETCH_OBJ, créant ainsi les noms des variables de l'objet, comme elles sont accédées PDO::FETCH_NUM: retourne un tableau indexé par le numéro de la colonne comme elle est retourné dans votre jeu de résultat, commençant à 0 PDO_FETCH_OBJ: retourne un objet anonyme avec les noms de propriétés qui correspondent aux noms des colonnes retournés dans le jeu de résultats cursor_orientation quelle ligne sera retournée à l'appelant. Par défaut PDO::FETCH_ORI_NEXT. Offset : pour un objet PDOStatement représentant un curseur scrollable pour lequel le paramètre cursor_orientation est défini à PDO::FETCH_ORI_ABS, cette valeur spécifie le numéro absolu de la ligne 13

14 Exemple query (2) $sql = "SELECT * FROM personnes"; foreach ($dbh->query($sql) as $row) { print $row[ nom].' - '. $row[ prenom]. '<br />'; Le fetch_style est celui par défaut (tableau indexé par les noms de colonnes mais aussi par les numéros de colonnes ) 14

15 PDOStatement->fetchAll() Retourne un tableau contenant toutes les lignes du jeu d'enregistrements Paramètre : fetch_style détermine la façon dont PDO retourne les lignes column_index [optionnel] pour n obtenir qu une seule colonne Exemple : <?php $sth = $dbh->prepare("select nom, couleur FROM fruit"); $sth->execute(); /* Récupération de toutes les lignes d'un jeu de résultats */ $result = $sth->fetchall(); print_r($result);?> 15

16 Méthode exec PDO->exec(statement) : Exécute une requête SQL et retourne le nombre de lignes affectées Liste de paramètres statement : requête à préparer et à exécuter. Exemple: $delrows=$dbh->exec('delete FROM tab WHERE id<20'); echo nombre d enregistrements supprimés :'.$delrows; 16

17 PDOStatement->execute() Exécute une requête préparée. Si la requête préparée inclut des marqueurs de positionnement, on peut : appeler la fonction PDOStatement->bindParam() pour lier les variables PHP aux marqueurs de positionnement : ou passer un tableau de valeurs de paramètres, uniquement en entrée Exemple <?php /* Exécute une requête préparée en passant un tableau de valeurs */ $calories = 150; $colour = 'rouge'; $sth = $dbh->prepare('select nom, couleur, calories FROM fruit WHERE calories <? AND couleur =?'); $sth->execute(array($calories, $couleur)); 17

18 SQLite Séance 6 23 Mars 2009

19 SQLite : un moteur SQL simplifié petite bibliothèque écrite en C : un moteur de base de données SQL ( partie de SQL92) et les propriétés ACID, dans la distribution de base depuis la version 5 de php SQLite n'est pas client/serveur : pas de procédure d'installation, de configuration, de gestion de comptes et de droits utilisateurs. toute la base est stockée dans un seul fichier (directement sur le disque dur du serveur www). le type de chaque donnée stockée en base est une propriété de la donnée, pas de la colonne. Une colonne peut donc contenir des données de type différent. Adapté aux petits sites, applications embarquées, mais non conçu pour gérer de nombreux accès simultanés Intégré dans mozilla firefox, skype, mac, téléphones symbian et apple (sans doute plus de 300 millions de déploiement au total) D. Richard Hipp, le créateur de SQLite, a choisi de distribuer cette bibliothèque dans le domaine public. 19

20 SQLite et php5 Voir aussi par exemple : Depuis PHP 5.1.0, SQLite (3) dépend de PDO, alors PDO doit être activé, en ajoutant à php.ini (dans l'ordre) : extension=php_pdo.dll extension=php_pdo_sqlite.dll SQLite est embarqué et compilé par défaut, ce qui signifie que le simple fait d'installer PHP5 permet de l'utiliser. Donc pas de processus indépendant comme MySQLserver 20

21 SQLite 2 ou SQLite3? création de base SQLite2 $dbhandle = new SQLiteDatabase('/www/support/usersqlite2.db'); il suffit de donner un nom de fichier (création BD ou ouverture) sous réserve des droits lecture/écriture sur le répertoire On peut aussi créer la base en mémoire vive destination :memory SQLite3 (cf. exposé PHP 5 et PDO) try { $dbhandle = new PDO('sqlite:'.$_SERVER['DOCUMENT_ROOT'].'/../usersqlite3.db'); catch( PDOException $exception ){ die($exception->getmessage()); 21

22 SqLite interface OO // connection à une db ou création si elle n'existe pas $db = new SQLiteDatabase("db.sqlite"); //transaction implicite $db->query("create TABLE foo(id INTEGER PRIMARY KEY, name UNIQUE)"); //transaction $db->query("begin; INSERT INTO foo (name) VALUES('machin'); INSERT INTO foo (name) VALUES('truc'); INSERT INTO foo (name) VALUES('chouette'); COMMIT;"); $result = $db->query("select * FROM foo"); // de classe 'SQLiteResult' while ($result->valid()) { // reste-t-il des lignes? $row = $result->current(); print_r($row); echo "<p />"; $result->next(); unset($db); // détruire la connexion (pas très utile en PHP...) 22

23 SQLite en procédural // connection à une db ou création si elle n'existe pas $db = sqlite_open("db.sqlite"); //transaction implicite sqlite_query($db, "CREATE TABLE foo(id INTEGER PRIMARY KEY, name UNIQUE)"); //transaction sqlite_query("begin; INSERT INTO foo (name) VALUES('machin1'); INSERT INTO foo (name) VALUES('truc1'); INSERT INTO foo (name) VALUES('chouette1'); COMMIT;"); $result = sqlite_query($db,"select * FROM foo"); while ($row = sqlite_fetch_array($result)) { print_r($row); echo "<p />"; sqlite_close($db); 23

24 SQLite: typage Par new SQLiteDatabase("db.sqlite"); ou sqlite_open("db.sqlite"); Création de la db "db.sqlite" dans le répertoire du script qui exécute cette instruction dans UN seul fichier. Rappel : SQLite est très faiblement typée, toutes les données sont enregistrées comme des chaînes terminées par 'NULL'. Pas de type pour les colonnes/champs. Pour des raisons de compatibilité SQLite 'supporte' les spécifications INT, CHAR, FLOAT, TEXT, etc dans les déclarations de table mais ne s'en sert pas. SQLite fait seulement la distinction entre les strings et les integers pour les tris. Donc si vous n'avez pas l'intention de trier des données vous pouvez vous dispenser de typer les colonnes dans les instructions CREATE TABLE!!! SQLite's typeless nature makes sorting and comparing data somewhat slow!!! 24

25 SQLite :INTEGER PRIMARY KEY L'habitude dans les tables SQL d'avoir un premier champ numérique clé primaire en "AUTOINCREMENT" (pour faciliter des recherches ou l'accès à la dernière ligne) a en SQLite une syntaxe particulière : INTEGER PRIMARY KEY. (c'est tout... ) ATTENTION : AUTOINCREMENT provoque une erreur de syntaxe Autre erreur de syntaxe : IF NOT EXISTS 25

26 SQLite : requêtes chaînées, transactions $db = new SQLiteDatabase(":memory:"); // transaction $db->query("begin; CREATE TABLE bar ( id INTEGER PRIMARY KEY, id2 ); INSERT INTO bar (id2) VALUES('v1'); INSERT INTO bar (id2) VALUES('v2'); COMMIT;"); // requête chaînées $db->query("insert INTO bar (id2) VALUES('v3'); INSERT INTO bar (id2) VALUES('v4'); INSERT INTO bar (id2) VALUES('v5'); INSERT INTO bar (id2) VALUES('v6');"); 26

27 SQLite : class SQLiteDatabase { construct ( string filename [, int mode [, string &error_message]] ); SQLiteResult query ( string query [, int result_type [, string &error_msg]] ); bool queryexec ( string query [, string &error_msg] ); array arrayquery ( string query [, int result_type [, bool decode_binary]] ); array singlequery ( string query [, bool first_row_only [, bool decode_binary]] ); SQLiteUnbuffered unbufferedquery ( string query [, int result_type [, string &error_msg]] ); int lastinsertrowid ( ); int changes ( ); void createaggregate ( string function_name, callback step_func, callback finalize_func [, intnum_args] ); void createfunction ( string function_name, callback callback [, int num_args] ); void busytimeout ( int milliseconds ); int lasterror ( ); array fetchcolumntypes ( string table_name [, int result_type] ) 27

28 SQLite : class SQLiteDatabase(1) construct ( string filename [, int mode [, string &error_message]] ); Ouvre une db SQLite ou la crée si elle n'existe pas. Paramètres : filename : le nom du fichier qui contient la db mode : mode d'accès (unix) au fichier de la db. (pour le moment NON utilisé par SQLite). Le mode par défaut est la valeur octale error_message : Passé par référence pour proposer un message d'erreur expliquant pourquoi la db n'a pu être ouverte. Return Values : Retourne une ressource (database handle) en cas de succès, FALSE en cas d'erreur 28

29 SQLite : class SQLiteDatabase(2) SQLiteResult query( string query [, int result_type [, string &error_msg]] ); Exécute une requête SQL donné par query sur la connexion à la db (database handle). Remarque : la connexion n'est pas demandé dans l'interface OO. result_type : SQLITE_ASSOC, SQLITE_NUM, SQLITE_BOTH (par défaut) SQLiteUnbuffered unbufferedquery ( string query [, int result_type [, string &error_msg]] ); identique à query( ) mais le résultat peut seulement être utilisé en lisant une ligne après l'autre; idéale pour la génération de tables HTML où on traite le résultat ligne par ligne. bool queryexec ( string query [, string &error_msg] ); exécuter une requête qui ne retourne rien. array arrayquery ( string query [, int result_type [, bool decode_binary]] ); Exécute une requête et retourne les résultats dans un tableau array singlequery ( string query [, bool first_row_only [, bool decode_binary]] ); Exécute une requête et retourne soit un tableau pour une seule colonne, soit la valeur de la première ligne 29

30 SQLite : class SQLiteResult (3) { array fetch ( [int result_type [, bool decode_binary]] ); object fetchobject ( [string class_name [, array ctor_params [, bool decode_binary]]] ); string fetchsingle ( [bool decode_binary] ); array fetchall ( [int result_type [, bool decode_binary]] ); mixed column ( mixed index_or_name [, bool decode_binary] ); int numfields ( ); string fieldname ( int field_index ); array current ( [int result_type [, bool decode_binary]] ); int key ( ); bool next ( ); bool valid ( ); bool rewind ( ); bool prev ( ); bool hasprev ( ); int numrows ( ); bool seek ( int rownum ); 30

31 SQLite : class SQLiteUnbuffered { array fetch ( [int result_type [, bool decode_binary]] ); object fetchobject ( [string class_name [, array ctor_params [, bool decode_binary]]] ); string fetchsingle ( [bool decode_binary] ); array fetchall ( [int result_type [, bool decode_binary]] ); mixed column ( mixed index_or_name [, bool decode_binary] ); int numfields ( ); string fieldname ( int field_index ); array current ( [int result_type [, bool decode_binary]] ); bool next ( ); bool valid ( ); 31

32 SQLite : inconvénients, problèmes ATTENTION : pendant la mise à jour de la BD en ajoutant une nouvelle donnée SQLite doit verrouiller le fichier qui contient la BD jusqu'à ce que la modification soit terminée sqlite_escape_string() ATTENTION : utiliser sqlite_escape_string( ) pour les problèmes de simple quote et autres caractères spéciaux. Sinon une chaine comme abc'123 provoquera une erreur syntaxique. Ne pas utiliser addslashes( ) à la place de sqlite_escape_string( ), car les deux fonctions ne sont pas équivalentes. Exemple : $username = sqlite_escape_string($username); $password = sqlite_escape_string($password); sqlite_query($db, "INSERT INTO users VALUES ('$username', '$password')"); 32

33 SQLite : sqlite_fetch_array() $r = sqlite_query($db, 'SELECT username FROM users'); while ($row = sqlite_fetch_array($r)) { // do something with $row Par défaut, sqlite_fetch_array( ) retourne un tableau dont les éléments sont indexés numériquement ET comme un tableau associatif. Par exemple si la requête ci dessus retourne une ligne avec le username rasmus, on obtient : Array ( [0] => rasmus [username] => rasmus ) 33

34 Développement Web (2) NFA017 PHP5 : extension mysqli J-F Dazy J-F Berger Séance 6 23 Mars 2009

35 Mysqli : Extension MySQL "améliorée" Voir aussi par exemple : Installation : Pour installer l'extension mysqli dans WAMP, Activer l'extension php_mysqli dans le menu 'PHP extensions' et désactivez aussi l'extension standard php_mysql Options de configuration MySQLi : mysqli.max_links, mysqli.default_port, mysqli.default_socket, mysqli.default_host, mysqli.default_user, mysqli.default_pw cf. le fichier 'php.ini' dans wamp 35

36 Classes pré-définies : Mysqli mysqli : représente la connexion entre php et le serveur MySQL Contructeur : Style orienté objet (méthode) class mysqli { construct ( [string host [, string username [, string passwd [, string dbname [, int port [, string socket]]]]]] ) Style procédural mysqli mysqli_connect ( [string host [, string username [, string passwd [, string dbname [, int port [, string socket]]]]]] ) 36

37 Mysqli : connexion 'style Objet' <?php $mysqli = new mysqli("localhost", "root", "", "world"); /* Vérification de la connexion */ if (mysqli_connect_errno()) { echo "Echec de la connexion: ".mysqli_connect_error()."<br/>"; exit(); echo " connexion OK <br/>"; echo "Information sur le serveur : ".$mysqli->host_info."<br/>"; /* Fermeture de la connexion */ $mysqli->close();?> 37

38 Mysqli : connexion 'style procedurale' // connexion à une db <?php $link = mysqli_connect("localhost", "root", "", "world"); /* Vérification de la connexion */ if (!$link) { printf("echec de la connexion : %s\n", mysqli_connect_error()); exit(); printf("information sur le serveur : %s\n", mysqli_get_host_info($link)); /* Fermeture de la connexion */ mysqli_close($link);?> 38

39 Mysqli : requête Style orienté objet (méthode) class mysqli { mixed query ( string query [, int resultmode] ) Style procédural mixed mysqli_query ( mysqli link, string query [, int resultmode] ) 39

40 Mysqli : requête 'style Objet' <?php $mysqli = new mysqli("localhost", "root", "", "world"); /* Vérification de la connexion */ /* Requète "Select" retourne un objet de type mysqli */ if ($result = $mysqli->query("select Name FROM City LIMIT 10")) { printf("select a retourné %d lignes.\n", $result->num_rows); /* Libération du jeu de résultats */ $result->close(); /* Si beaucoup de données, utiliser MYSQLI_USE_RESULT */ if ($result = $mysqli->query("select * FROM City", MYSQLI_USE_RESULT)) { $result->close(); $mysqli->close();?> 40

41 Mysqli : requête 'style procédural' <?php $mysqli = mysqli_connect("localhost", "root", "", "world"); /* Vérification de la connexion */ /* Requète "Select" retourne un objet de mysqli */ if ($result = mysqli_query($mysqli, "SELECT Name FROM City LIMIT 10")) { printf("select a retourné %d lignes.<br/>", mysqli_num_rows); /* Libération du jeu de résultats */ mysqli_free_result($result); mysqli_close();?> 41

42 Classes pré-définies : mysqli_result Représente le résultat retourné par le serveur. Quelques Méthodes : close - Termine le jeu de résultat MySQL data_seek - Déplace le pointeur de lignes de résultat fetch_field - Lit les informations de colonnes dans un résultat fetch_fields - Lit les informations de toutes les colonnes d'un résultat fetch_field_direct - Lit les informations de colonne fetch_array - Lit une ligne de résultat dans un tableau associatif ou numérique fetch_assoc - Lit une ligne de résultat dans un tableau associatif fetch_object - Lit une ligne de résultat dans un objet (construit à la volée!!!) fetch_row - Lit une ligne de résultat dans un tableau (indices numériques) fetch_seek - Place le pointeur de résultat à un offset valide 42

43 mysqli_result : fetch_assoc Style procédural array mysqli_fetch_assoc ( mysqli_result result ) Style orienté objet (méthode) class mysqli_result { array fetch_assoc ( void ) 43

44 mysqli_result : fetch_assoc exemple $query = "SELECT Nom, CodePays FROM Ville ORDER by ID DESC LIMIT 50,5"; if ($result = $mysqli->query($query)) { /* Tableau associatif de la ligne sélectionnée */ while ($row = $result->fetch_assoc()) { printf ("%s (%s)\n", $row["nom"], $row["codepays"]); /* Libération du jeu de résultats */ $result->close(); 44

45 mysqli_result : fetch_object Style orienté objet (méthode) class mysqli_result { mixed fetch_object ( void ) Style procédural mixed mysqli_fetch_object ( mysqli_result result ) 45

46 mysqli_result : fetch_object exemple $query = "SELECT Nom, CodePays FROM Ville ORDER by ID DESC LIMIT 50,5"; if ($result = $mysqli->query($query)) { /* Récupération du tableau d'objet */ while ($obj = $result->fetch_object()) { printf ("%s (%s)\n", $obj->nom, $obj->codepays); /* Libération du jeu de résultats */ $result->close(); 46

PDO : PHP Data Object 1/13

PDO : PHP Data Object 1/13 PDO : PHP Data Object 1/13 Tous ne sont que des extensions... Les fonstions mysql_* : API mysql Les fonctions mysqli_* aussi Il en est de même pour PDO PDO (avec le pilote PDO MySQL Driver et Extension

Plus en détail

PHP. PHP et bases de données

PHP. PHP et bases de données Accés aux bases de données Une des raisons du succès de PHP Support d un grand nombre de bases - MySQL - Oracle - PostgreSQL - SQLite - Microso> Access - DBM - IBM Informix -... Accés aux bases de données

Plus en détail

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

PHP 5. La base de données MySql. A. Belaïd 1 PHP 5 La base de données MySql A. Belaïd 1 Base de données C est quoi une base de données? Une base de données contient une ou plusieurs tables, chaque table ayant un ou plusieurs enregistrements Exemple

Plus en détail

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

BTS S.I.O. 2012-2013 PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais 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

Plus en détail

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

PHP. Bertrand Estellon. 26 avril 2012. Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril 2012 1 / 214 PHP Bertrand Estellon Aix-Marseille Université 26 avril 2012 Bertrand Estellon (AMU) PHP 26 avril 2012 1 / 214 SQLite et PDO Base de données SQLite et PDO SQLite écrit les données relatives à la base dans

Plus en détail

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

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2) Le langage PHP (2) Walid Belkhir Université de Provence belkhir@cmi.univ-mrs.fr http://www.lif.univ-mrs.fr/ belkhir/ 1 / 54 1 La programmation orientée objet 2 Gestion de Connexions HTTP 3 Manipulation

Plus en détail

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

Introduction à JDBC. Accès aux bases de données en Java Introduction à JDBC Accès aux bases de données en Java Eric Cariou Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Introduction JDBC : Java Data Base Connectivity

Plus en détail

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)

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) PHP et mysql php_mysql PHP et mysql Code: php_mysql Originaux url: http://tecfa.unige.ch/guides/tie/html/php-mysql/php-mysql.html url: http://tecfa.unige.ch/guides/tie/pdf/files/php-mysql.pdf Auteurs et

Plus en détail

CREATION WEB DYNAMIQUE

CREATION WEB DYNAMIQUE CREATION WEB DYNAMIQUE IV ) MySQL IV-1 ) Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requêtes vers les bases de données relationnelles. Le serveur de

Plus en détail

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

Mysql. Les requêtes préparées Prepared statements Mysql Les requêtes préparées Prepared statements Introduction Les prepared statements côté serveur sont une des nouvelles fonctionnalités les plus intéressantes de MySQL 4.1 (récemment sorti en production

Plus en détail

Java DataBaseConnectivity

Java DataBaseConnectivity Java DataBaseConnectivity JDBC JDBC est une API Java (ensemble de classes et d interfaces défini par SUN et les acteurs du domaine des SGBD) permettant d accéder aux bases de données à l aide du langage

Plus en détail

Mysql avec EasyPhp. 1 er mars 2006

Mysql avec EasyPhp. 1 er mars 2006 Mysql avec EasyPhp 1 er mars 2006 Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requètes vers les bases de données relationnelles. Il en reprend la syntaxe

Plus en détail

OpenPaaS Le réseau social d'entreprise

OpenPaaS Le réseau social d'entreprise OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3

Plus en détail

PHP 4 PARTIE : BASE DE DONNEES

PHP 4 PARTIE : BASE DE DONNEES PHP 4 PARTIE : BASE DE DONNEES 1. Introduction 2. Présentation de MySQL 3. Principe 4. Connexion 5. Interrogation 6. Extraction des données 7. Fonctions de services 8. Traitement des erreurs 9. Travaux

Plus en détail

I. MySQL : Serveur et SGBD

I. MySQL : Serveur et SGBD Le Système de Gestion de Base de Données MySQL I. MySQL : Serveur et SGBD Menu I. MySQL : Serveur et SGBG II. Création d'une base de données avec MySQL MySQL est un système de gestion et conception de

Plus en détail

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010 ORACLE 10G DISTRIBUTION ET REPLICATION Distribution de données avec Oracle G. Mopolo-Moké prof. Associé UNSA 2009/ 2010 1 Plan 12. Distribution de données 12.1 Génération des architectures C/S et Oracle

Plus en détail

Notes de cours : bases de données distribuées et repliquées

Notes de cours : bases de données distribuées et repliquées Notes de cours : bases de données distribuées et repliquées Loïc Paulevé, Nassim Hadj-Rabia (2009), Pierre Levasseur (2008) Licence professionnelle SIL de Nantes, 2009, version 1 Ces notes ont été élaborées

Plus en détail

Configurer la supervision pour une base MS SQL Server Viadéis Services

Configurer la supervision pour une base MS SQL Server Viadéis Services Configurer la supervision pour une base MS SQL Server Référence : 11588 Version N : 2.2 : Créé par : Téléphone : 0811 656 002 Sommaire 1. Création utilisateur MS SQL Server... 3 2. Configuration de l accès

Plus en détail

Pratique et administration des systèmes

Pratique et administration des systèmes Université Louis Pasteur Licence Informatique (L2) UFR de Mathématiques et Informatique Année 2007/2008 1 But du TP Pratique et administration des systèmes TP10 : Technologie LAMP Le but de ce TP est de

Plus en détail

1. Base de données SQLite

1. Base de données SQLite Dans ce TP, nous allons voir comment créer et utiliser une base de données SQL locale pour stocker les informations. La semaine prochaine, ça sera avec un WebService. On repart de l application AvosAvis

Plus en détail

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

Le langage SQL (première partie) c Olivier Caron Le langage SQL (première partie) 1 Plan Le S.G.B.D. postgres Le langage SQL Langage de manipulation de données Langage de requêtes 2 Quelques mots sur Postgres (1/2) Travaux de Stonebraker (Univ. Berkeley)

Plus en détail

Stockage du fichier dans une table mysql:

Stockage du fichier dans une table mysql: Stockage de fichiers dans des tables MYSQL avec PHP Rédacteur: Alain Messin CNRS UMS 2202 Admin06 30/06/2006 Le but de ce document est de donner les principes de manipulation de fichiers dans une table

Plus en détail

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige.

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige. : JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java Michel Bonjour http://cuiwww.unige.ch/~bonjour Plan JDBC: API bas niveau pour l accès aux BD (SQL) - Introduction - JDBC et : Java, ODBC, SQL

Plus en détail

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013 NFA 008 Introduction à NoSQL et MongoDB 25/05/2013 1 NoSQL, c'est à dire? Les bases de données NoSQL restent des bases de données mais on met l'accent sur L'aspect NON-relationnel L'architecture distribuée

Plus en détail

Olivier Mondet http://unidentified-one.net

Olivier Mondet http://unidentified-one.net T-GSI Ch.4 Le Langage SQL LDD, LCD Cet exercice guidé reprend le plan suivis lors de l intervention de formation faite pour l académie de Versailles. L objectif principal visait en la présentation du langage

Plus en détail

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

Dans l'article précédent, vous avez appris Pour les débutants Les différents formats de sortie proposés par PHPExcel La bibliothèque orientée objet PHPExcel permet de lire et créer des fichiers pour tableurs. Dans cette série d articles, vous apprendrez

Plus en détail

Application web de gestion de comptes en banques

Application web de gestion de comptes en banques Application web de gestion de comptes en banques Objectif Réaliser une application Web permettant à un client de gérer ses comptes en banque Diagramme de cas d'utilisation 1 Les cas d'utilisation Connexion

Plus en détail

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 SQL Sommaire : COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 COMMANDES DE MANIPULATION DE DONNEES... 2 COMMANDES DE CONTROLE TRANSACTIONNEL... 2 COMMANDES DE REQUETE DE DONNEES... 2 COMMANDES

Plus en détail

Comment Connecter une Base de Données MySQL via un Driver JDBC Avec OpenOffice.org

Comment Connecter une Base de Données MySQL via un Driver JDBC Avec OpenOffice.org Comment Connecter une Base de Données MySQL via un Driver JDBC Avec OpenOffice.org Diffusé par Le Projet Documentation OpenOffice.org OpenOffice.org Documentation Project How-To Table des matières 1. Introduction...3

Plus en détail

Installation FollowMe Q server

Installation FollowMe Q server Installation FollowMe Q server FollowMe Rev 1.00 30 nov 2007 Pré requis FollowMe v5 est un service de Windows et s'installe sur tout poste fonctionnant sous XP Pro, 2000 server, 2003 server. Il utilise

Plus en détail

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

Projet Viticulture - TP 3 : bases de données distantes BTS Services informatiques aux organisations Projet Viticulture TP 3 : bases de données externes Description du thème Partie 1 : bases de données locales SQLite Partie 2 : projet H2O stockage local Partie 3 : bases de données distantes Partie 4 :

Plus en détail

Gestion des utilisateurs et de leurs droits

Gestion des utilisateurs et de leurs droits Gestion des utilisateurs et de leurs droits Chap. 12, page 323 à 360 Lors de la création d'un utilisateur vous devez indiquer son nom, ses attributs, son profil, la méthode d'authentification (par le SE

Plus en détail

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1 La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1 Plan 1. Généralités sur la persistance des données dans les applications 2. La connection

Plus en détail

Les BASES de DONNEES dans WampServer

Les BASES de DONNEES dans WampServer Les BASES de DONNEES dans WampServer 1 Définitions Générales Une base de données (BDD) permet d'enregistrer, de stocker, de ranger des données de façon organisée et hiérarchisée. SQL est le langage qui

Plus en détail

Java et les bases de données

Java et les bases de données Michel Bonjour http://cuiwww.unige.ch/~bonjour CENTRE UNIVERSITAIRE D INFORMATIQUE UNIVERSITE DE GENEVE Plan Introduction JDBC: API SQL pour Java - JDBC, Java, ODBC, SQL - Architecture, interfaces, exemples

Plus en détail

TP Contraintes - Triggers

TP Contraintes - Triggers TP Contraintes - Triggers 1. Préambule Oracle est accessible sur le serveur Venus et vous êtes autorisés à accéder à une instance licence. Vous utiliserez l interface d accés SQL*Plus qui permet l exécution

Plus en détail

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes Langage SQL (1) Sébastien Limet Denys Duchier IUT Orléans 4 septembre 2007 Notions de base qu est-ce qu une base de données? SGBD différents type de bases de données quelques systèmes existants Définition

Plus en détail

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

Mise en oeuvre d'une base de données mono-utilisateur avec SQLite Mise en oeuvre d'une base de données mono-utilisateur avec SQLite Utilisation de SQLite dans le logiciel CASSIS Plan Le contexte scientifique avec le logiciel CASSIS La problématique avec Mysql La solution

Plus en détail

Installation d'un serveur FTP géré par une base de données MySQL

Installation d'un serveur FTP géré par une base de données MySQL BTS INFORMATIQUE DE GESTION Option Administrateur de réseaux développement d applications COMPTE-RENDU D ACTIVITE ACTIVITE N 2 Nom et Prénom : Casanova Grégory Identification (objectif) de l activité Installation

Plus en détail

Test de HSQLDB et Comparatif avec Sqlite

Test de HSQLDB et Comparatif avec Sqlite Test de HSQLDB et Comparatif avec Sqlite Table des matières 1 - Conditions préalables... 2 2 - Installation de HSQLDB... 2 3 - Premier Test de HSQLDB... 2 4 - Deuxième Test pour bien comprendre :-)...

Plus en détail

cedric.foll@(education.gouv.fr laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007

cedric.foll@(education.gouv.fr laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007 A t t a q u e s c o n t r e l e s a p p l i s w e b cedric.foll@(education.gouv.fr laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007 D e l ' u t i l i t é d e l ' a t t a

Plus en détail

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework L'objectif de ce document est de poser des bases de réflexion sur la modélisation d'un projet réalisé

Plus en détail

LES ACCES ODBC AVEC LE SYSTEME SAS

LES ACCES ODBC AVEC LE SYSTEME SAS LES ACCES ODBC AVEC LE SYSTEME SAS I. Présentation II. SAS/ACCESS to ODBC III. Driver ODBC SAS IV. Driver ODBC SAS Universel V. Version 8 VI. Références I. Présentation Introduction ODBC, qui signifie

Plus en détail

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL Cours PL/SQL Langage propre à Oracle basé sur ADA Offre une extension procédurale à SQL PL/SQL permet d utiliser un sous-ensemble du langage SQL des variables, des boucles, des alternatives, des gestions

Plus en détail

PHP et les Bases de données - Généralités

PHP et les Bases de données - Généralités PHP et les Bases de données - Généralités Conception d une base de données Méthodes utilisées : MERISE, UML Modèle conceptuel des données MCD, Modèle logique MLD, Modèle Physique MPD. Ces aspects seront

Plus en détail

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

Compte-rendu de projet de Système de gestion de base de données Compte-rendu de projet de Système de gestion de base de données Création et utilisation d'un index de jointure LAMBERT VELLER Sylvain M1 STIC Université de Bourgogne 2010-2011 Reponsable : Mr Thierry Grison

Plus en détail

ISC21-1 --- Système d Information Architecture et Administration d un SGBD Compléments SQL

ISC21-1 --- Système d Information Architecture et Administration d un SGBD Compléments SQL ISC21-1 --- Système d Information Architecture et Administration d un SGBD Compléments SQL Jean-Marie Pécatte jean-marie.pecatte@iut-tlse3.fr 16 novembre 2006 ISIS - Jean-Marie PECATTE 1 Valeur de clé

Plus en détail

Application BdD et JDBC. Introduction 1/28. I Dans tout les cas, une seule problématique. I Quelques alternatives :

Application BdD et JDBC. Introduction 1/28. I Dans tout les cas, une seule problématique. I Quelques alternatives : ntroduction 1/28 2/28 Anne-Cécile Caron Licence MAGE - Bases de Données 2013-2014 Application base de données Pour le développeur : Quel est l environnement? type de client (mode client serveur, intranet,...)

Plus en détail

Partie 0 : Gestion des tablespace et des utilisateurs... 3

Partie 0 : Gestion des tablespace et des utilisateurs... 3 Sommaire Partie 0 : Gestion des tablespace et des utilisateurs... 3 1- Créer deux TableSpaces votre_nom-tbs et Votre_nom-TempTBS :... 3 2. Créer un utilisateur qui porte votre nom :... 3 3. Attribuer à

Plus en détail

Installation et Mise en œuvre de MySQL

Installation et Mise en œuvre de MySQL T-GSI STAGE RENOVATION - SQL.Chapitre 2 - Installation et Mise en œuvre de MySQL Olivier Mondet http://unidentified-one.net A. Pourquoi choisir MySQL? A.1. MySQL, très controversé La base de données MySQL

Plus en détail

Construire une base de donnée pour bibliothèque

Construire une base de donnée pour bibliothèque Construire une base de donnée pour bibliothèque S'il y a bien un emploi typique pour un ordinateur, c'est celui de gérer une base de données. La première d'entre elles est bien sûr la base des fichiers

Plus en détail

Guide d'installation sous Windows

Guide d'installation sous Windows Guide d'installation sous Windows Le but de ce guide est de faciliter l'installation de Phpcompta sous Windows et vous guidera pas-àpas, étape par étape. L'installation se déroule sous Windows XP SP2 mais

Plus en détail

Devoir Data WareHouse

Devoir Data WareHouse Université Paris XIII Institut Galilée Master 2-EID BENSI Ahmed CHARIFOU Evelyne Devoir Data WareHouse Optimisation, Transformation et Mise à jour utilisées par un ETL Mr R. NEFOUSSI Année 2007-2008 FICHE

Plus en détail

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 SHERLOCK 7 Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 Cette note montre comment intégrer un script Java dans une investigation Sherlock et les différents aspects de Java script. S T E M M E R I M A G I N

Plus en détail

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

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles) SGBDR Systèmes de Gestion de Bases de Données (Relationnelles) Plan Approches Les tâches du SGBD Les transactions Approche 1 Systèmes traditionnels basés sur des fichiers Application 1 Gestion clients

Plus en détail

Paginer les données côté serveur, mettre en cache côté client

Paginer les données côté serveur, mettre en cache côté client Paginer les données côté serveur, mettre en cache côté client Vous voulez sélectionner des lignes dans une table, mais celle-ci comporte trop de lignes pour qu il soit réaliste de les ramener en une seule

Plus en détail

Bases de données relationnelles

Bases de données relationnelles Bases de données relationnelles Système de Gestion de Bases de Données Une base de données est un ensemble de données mémorisé par un ordinateur, organisé selon un modèle et accessible à de nombreuses

Plus en détail

Procédures Stockées WAVESOFT... 12 ws_sp_getidtable... 12. Exemple :... 12. ws_sp_getnextsouche... 12. Exemple :... 12

Procédures Stockées WAVESOFT... 12 ws_sp_getidtable... 12. Exemple :... 12. ws_sp_getnextsouche... 12. Exemple :... 12 Table des matières Les Triggers... 2 Syntaxe... 2 Explications... 2 Les évènements déclencheurs des triggers... 3 Les modes de comportements des triggers... 4 Les pseudo tables... 5 Exemple... 6 Les procédures

Plus en détail

Bases de Données relationnelles et leurs systèmes de Gestion

Bases de Données relationnelles et leurs systèmes de Gestion III.1- Définition de schémas Bases de Données relationnelles et leurs systèmes de Gestion RAPPELS Contraintes d intégrité sous Oracle Notion de vue Typage des attributs Contrainte d intégrité Intra-relation

Plus en détail

Architecture de la plateforme SBC

Architecture de la plateforme SBC Simple Business Connector Architecture de la plateforme SBC Titre Projet Description Architecture de la plateforme SBC Plateforme SBC Ce document reprend toutes les étapes de l'installation du serveur

Plus en détail

SQL Historique 1982 1986 1992

SQL Historique 1982 1986 1992 SQL Historique 1950-1960: gestion par simple fichier texte 1960: COBOL (début de notion de base de données) 1968: premier produit de sgbdr structuré (IBM -> IDMS) 1970-74: élaboration de l'outil d'analyse

Plus en détail

Encryptions, compression et partitionnement des données

Encryptions, compression et partitionnement des données Encryptions, compression et partitionnement des données Version 1.0 Grégory CASANOVA 2 Compression, encryption et partitionnement des données Sommaire 1 Introduction... 3 2 Encryption transparente des

Plus en détail

Bases de SQL. Hacks 1-6 CHAPITRE UN

Bases de SQL. Hacks 1-6 CHAPITRE UN CHAPITRE UN Bases de SQL Hacks 1-6 Même les commandes SQL les plus simples peuvent comporter des variantes curieuses ; ce chapitre vous montrera qu un programmeur astucieux peut exploiter les nombreuses

Plus en détail

SYSTÈMES D INFORMATIONS

SYSTÈMES D INFORMATIONS SYSTÈMES D INFORMATIONS Développement Modx Les systèmes de gestion de contenu Les Content Management Système (CMS) servent à simplifier le développement de sites web ainsi que la mise à jour des contenus.

Plus en détail

Cours: Administration d'une Base de Données

Cours: Administration d'une Base de Données Bases de Données Avancées Module A IUT Lumière, License CE-STAT 2006-2007 Pierre Parrend Cours: Administration d'une Base de Données Table of Contents Principes...1 Structure d'un Base de Données...1 Architecture...1

Plus en détail

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement Guillaume HARRY l Contenu sous licence Creative Commons CC-BY-NC-ND Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement P. 2 1. Introduction 2.

Plus en détail

Manuel d'installation

Manuel d'installation CyberMUT P@iement P@iement CIC P@iement OBC SERVICE SECURISE DE PAIEMENT INTERNET PAR CARTE BANCAIRE (Sécurisé par le protocole SSL) Manuel d'installation (Document 2/2) EURO Sp.Tech. 1.2.8 Octobre 2001

Plus en détail

SQL Server et Active Directory

SQL Server et Active Directory SQL Server et Active Directory Comment requêter AD depuis SQL Server Comment exécuter des requêtes de sélection sur un Active Directory depuis SQL Server? L'utilisation du principe des serveurs liés adapté

Plus en détail

TUTORIEL D INSTALLATION D ORACLE ET DE SQL DEVELOPPER TUTORIEL D INSTALLATION D ORACLE...1 ET DE SQL DEVELOPPER...1

TUTORIEL D INSTALLATION D ORACLE ET DE SQL DEVELOPPER TUTORIEL D INSTALLATION D ORACLE...1 ET DE SQL DEVELOPPER...1 TUTORIEL D INSTALLATION D ORACLE ET DE SQL DEVELOPPER Sur Windows Contenu TUTORIEL D INSTALLATION D ORACLE...1 ET DE SQL DEVELOPPER...1 I-Installation d «Oracle Database Express Edition»...2 Etape 1 :

Plus en détail

PHP 5.4 Développez un site web dynamique et interactif

PHP 5.4 Développez un site web dynamique et interactif Editions ENI PHP 5.4 Développez un site web dynamique et interactif Collection Ressources Informatiques Table des matières Table des matières 1 Chapitre 1 Introduction 1. Objectif de l'ouvrage.............................................

Plus en détail

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

1. Qu'est-ce que SQL?... 2. 2. La maintenance des bases de données... 2. 3. Les manipulations des bases de données... 5 1. Qu'est-ce que SQL?... 2 2. La maintenance des bases de données... 2 2.1 La commande CREATE TABLE... 3 2.2 La commande ALTER TABLE... 4 2.3 La commande CREATE INDEX... 4 3. Les manipulations des bases

Plus en détail

Connexion à une base de données. Connexion à une base de données. Connexion à une base de données Développement d'une application

Connexion à une base de données. Connexion à une base de données. Connexion à une base de données Développement d'une application On souhaite réaliser la connexion d'un programme avec des sources de données Ici, des bases de données relationnelles Deux approches sont possibles qui mettent en œuvre chacune son propre jeu de classes

Plus en détail

Tutorial sur SQL Server 2000

Tutorial sur SQL Server 2000 Tutorial sur SQL Server 2000 Système d'exploitation est 2000 pro et Serveur 2000 Sommaire 1 - Installation... 2 2 - Mise à jour... 5 3 - Présentation... 7 3-1 - Service Manager (Démarrer/Programmes/Microsoft

Plus en détail

Accès aux bases de données

Accès aux bases de données 13 Accès aux bases de données Les bases de données fournissent un mécanisme de stockage persistant pour les données d application et dans bien des cas, elles sont essentielles au fonctionnement des applications.

Plus en détail

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)

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) Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07

Plus en détail

Introduction aux SGBDR

Introduction aux SGBDR 1 Introduction aux SGBDR Pour optimiser une base Oracle, il est important d avoir une idée de la manière dont elle fonctionne. La connaissance des éléments sous-jacents à son fonctionnement permet de mieux

Plus en détail

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW Groupe : 322 Exploitation des Banques de données 420-PK6-SL (1-2-1) Étape : 3 Professeur Nom: Marcel Aubin Courriel : maubin@cegep-st-laurent.qc.ca

Plus en détail

Optimisations des SGBDR. Étude de cas : MySQL

Optimisations des SGBDR. Étude de cas : MySQL Optimisations des SGBDR Étude de cas : MySQL Introduction Pourquoi optimiser son application? Introduction Pourquoi optimiser son application? 1. Gestion de gros volumes de données 2. Application critique

Plus en détail

Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC

Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC Sommaire 1. Objectifs et intérêts... 2 2. Intégrer le driver SQL Server dans SJSAS 9... 2 2.1. Télécharger

Plus en détail

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

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO2 2006-2007 S2-IO2 Bases de données: Jointures, Transactions Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO2 2006-2007 S2-IO2 Bases de données: Jointures, Cours Internet et Outils: [1/12] Intro, Internet, Web, XHTML (2H) [2/12] XHTML(2H) [3/12]

Plus en détail

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES Dossier G11 - Interroger une base de données La base de données Facturation contient tout un ensemble d'informations concernant la facturation de la SAFPB (société anonyme de fabrication de produits de

Plus en détail

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés

Plus en détail

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

Création d'un site dynamique en PHP avec Dreamweaver et MySQL Création d'un site dynamique en PHP avec Dreamweaver et MySQL 1. Création et configuration du site 1.1. Configuration de Dreamweaver Avant de commencer, il est nécessaire de connaître l'emplacement du

Plus en détail

Bases de données et sites WEB

Bases de données et sites WEB Bases de données et sites WEB Cours2 : Sécurité et contrôles d accès Anne Doucet 1 Authentification Autorisation Privilèges Rôles Profils Limitations de ressources Plan Audit Contrôle d accès via les vues

Plus en détail

Chapitre 2. Classes et objets

Chapitre 2. Classes et objets Chapitre 2: Classes et Objets 1/10 Chapitre 2 Classes et objets Chapitre 2: Classes et Objets 2/10 Approche Orientée Objet Idée de base de A.O.O. repose sur l'observation de la façon dont nous procédons

Plus en détail

Le Langage De Description De Données(LDD)

Le Langage De Description De Données(LDD) Base de données Le Langage De Description De Données(LDD) Créer des tables Décrire les différents types de données utilisables pour les définitions de colonne Modifier la définition des tables Supprimer,

Plus en détail

E-mail : contact@nqicorp.com - Web : http://www.nqicorp.com

E-mail : contact@nqicorp.com - Web : http://www.nqicorp.com - 5, rue Soutrane - 06560 Valbonne Sophia-Antipolis E-mail : contact@nqicorp.com - Web : http://www.nqicorp.com NQI Orchestra 3.3 - Guide d'installation Linux....................................................................

Plus en détail

Configuration de plusieurs serveurs en Load Balancing

Configuration de plusieurs serveurs en Load Balancing Le serveur de communication IceWarp Configuration de plusieurs serveurs en Load Balancing Version 10.4 27 février 2013 Icewarp France / DARNIS Informatique i Sommaire Configuration de plusieurs serveurs

Plus en détail

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

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation Base de données S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Présentation du module Contenu général Notion de bases de données Fondements / Conception Utilisation :

Plus en détail

RMI le langage Java XII-1 JMF

RMI le langage Java XII-1 JMF Remote Method Invocation (RMI) XII-1 Introduction RMI est un ensemble de classes permettant de manipuler des objets sur des machines distantes (objets distants) de manière similaire aux objets sur la machine

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

Les bases de données

Les bases de données Les bases de données Introduction aux fonctions de tableur et logiciels ou langages spécialisés (MS-Access, Base, SQL ) Yves Roggeman Boulevard du Triomphe CP 212 B-1050 Bruxelles (Belgium) Idée intuitive

Plus en détail

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS 1. Introduction Nous allons aborder la notion de surcouche procédurale au sein des SGBDS relationnels tels que Oracle (PLSQL)

Plus en détail

1/ Présentation de SQL Server :

1/ Présentation de SQL Server : Chapitre II I Vue d ensemble de Microsoft SQL Server Chapitre I : Vue d ensemble de Microsoft SQL Server Module: SQL server Semestre 3 Année: 2010/2011 Sommaire 1/ Présentation de SQL Server 2/ Architerture

Plus en détail

A QUOI SERVENT LES BASES DE DONNÉES?

A QUOI SERVENT LES BASES DE DONNÉES? BASE DE DONNÉES OBJET Virginie Sans virginie.sans@irisa.fr A QUOI SERVENT LES BASES DE DONNÉES? Stockage des informations : sur un support informatique pendant une longue période de taille importante accès

Plus en détail

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF 2008-2009

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF 2008-2009 TD : Requêtes SQL (BDR.TD2-1) INSA 3IF 2008-2009 Loïc Maisonnasse 1 Objectif Ce TD a pour objectif de vous familiariser avec le langage de requêtes SQL. Et de vous apprendre à écrire des requêtes SQL pour

Plus en détail