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)



Documents pareils
PHP 4 PARTIE : BASE DE DONNEES

CREATION WEB DYNAMIQUE

Pratique et administration des systèmes

Mysql avec EasyPhp. 1 er mars 2006

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

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

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

PHP. PHP et bases de données

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

Olivier Mondet

Stockage du fichier dans une table mysql:

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

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

OpenPaaS Le réseau social d'entreprise

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

L installation a quelque peu changée depuis les derniers tutos, voici une actualisation.

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

PDO : PHP Data Object 1/13

Gestion de base de données

Attaques applicatives

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

SUPPORT DE COURS / PHP PARTIE 3

SQL Historique

Les BASES de DONNEES dans WampServer

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Encryptions, compression et partitionnement des données

1. Base de données SQLite

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

1 Position du problème

Langage SQL : créer et interroger une base

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

Modélisation et Gestion des bases de données avec mysql workbench

Présentation Windows Azure Hadoop Big Data - BI

Programmation Web. Madalina Croitoru IUT Montpellier

Gestion de stock pour un magasin

Sécurité Informatique. Description. Prérequis. Un petit test avant de commencer s embourber

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

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

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

Sécurité des applications web. Daniel Boteanu

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

Création et Gestion des tables

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

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

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

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

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

TD3: tableaux avancées, première classe et chaînes

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

INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

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)

TP JAVASCRIPT OMI4 TP5 SRC

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

SYSTÈMES D INFORMATIONS

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

I. MySQL : Serveur et SGBD

Bible MySQL! La première version de MySQL est apparue en Cette première version est créée pour un usage personnel à partir de msql.

Ocs Inventory et GLPI s appuie sur un serveur LAMP. Je vais donc commencer par installer les paquets nécessaires.

Accès aux bases de données

Java DataBaseConnectivity

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

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

Le protocole FTP (File Transfert Protocol,

Bases de données relationnelles

DOM - Document Object Model

Cours Bases de données 2ème année IUT

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

Table des matières L INTEGRATION DE SAS AVEC JMP. Les échanges de données entre SAS et JMP, en mode déconnecté. Dans JMP

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

Installation / Sauvegarde Restauration / Mise à jour

Guide d installation de SugarCRM Open Source version 4.5.1

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

Préparation d un serveur Apache pour Zend Framework

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

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

Historisation des données

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

Projet de programmation (IK3) : TP n 1 Correction

Programmation avec des objets : Cours 7. Menu du jour

Définition des Webservices Ordre de paiement par . Version 1.0

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Introdution à PHP, MySQL et AJAX

CREATION d UN SITE WEB (INTRODUCTION)

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

Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux

GUIDE D INSTALLATION DE L APPLICATION GECOL SUR

Diffuser un contenu sur Internet : notions de base... 13

Le Langage De Description De Données(LDD)

DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin

WDpStats Procédure d installation

Transcription:

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 version Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS) Prérequis Module technique précédent: php-html Module technique précédent: mysql-intro Modules Module technique suppl.: java-mysql

PHP et mysql -. php_mysql-2 Objectifs PHP - MySQL basics :)

PHP et mysql php_mysql 1. Table de matières détaillée 1. Table de matières détaillée 3 2. Principe de la connectivité PHP - bases de données 4 2.1 Un exemple complet documenté: 4 2.2 Fonctions PHP - MySQL 6 A.Se connecter à un serveur de bases de données 6 B.Sélectioner une base de données 6 C.Exécuter une requête SQL 7 D.Traitement des résultats 8 3. Une petite application PHP - mysql : Le livre d or. 13 3.1 Détails des fichiers et des ressources 13 3.2 Structure de la table comments 14 3.3 Détails de l écriture des données 15 3.4 Détails de l affichage de la table 17

PHP et mysql - 2. Principe de la connectivité PHP - bases de données php_mysql-4 2. Principe de la connectivité PHP - bases de données PHP permet d interagir avec une base de données par l intermédiaire de fonctions. Nous construisons les requêtes en écrivant un programme PHP. Nous affichons les résultats des requêtes avec HTML. Fonctions PHP-mySQL url: /guides/php/php3/manual/ref.mysql.html 2.1 Un exemple complet documenté: url: http://tecfa.unige.ch/guides/php/examples/mysql-demo/main.html url: Les détails: http://tecfa.unige.ch/guides/php/examples/mysql-demo/ afficher un ensemble d enregistrements (dump_results.phps) afficher un seul enregistrement ajouter un enregistrement (new-entry.phps et insert-entry.phps) éditer un enregistrement (edit-entry.phps et replace-entry.phps) effacer un enregistrement (delete-entry.phps)

PHP et mysql - 2. Principe de la connectivité PHP - bases de données php_mysql-5 Pour l ajout d enregistrements deux scripts sont nécessaires: new-entry.php produit un formulaire HTML vide insert-entry.php prend le contenu du formulaire, essaye de l insérer dans la base de données et donne un feed-back à l utilisateur. Il en va de même pour l édition d un enregistrement: edit-entry.php produit un formulaire HTML contenant les valeurs précédemment enregistrées replace-entry.php tente de remplacer les anciennes valeurs avec celles que l utilisateur a entré dans le formulaire et donne un feed-back à l utilisateur.

PHP et mysql - 2. Principe de la connectivité PHP - bases de données php_mysql-6 2.2 Fonctions PHP - MySQL A. Se connecter à un serveur de bases de données Avant de pouvoir accéder à une base de données, il faut établir une connexion avec le serveur qui l héberge. On spécifie: le nom de la machine sur laquelle est installé le serveur (host) un nom d utilisateur le mot de passe correspondant Syntaxe: mysql_pconnect mysql_pconnect(host, username, password); mysql_pconnect("tecfasun1.unige.ch","nobody",""); nobody est un utilisateur qui peut se connecter sans mot de passe mais qui a des permissions limitées. B. Sélectioner une base de données Un serveur héberge plusieurs bases de données qui chacune contiennent des tables. Syntaxe: mysql_select_db mysql_select_db(dbname); mysql_select_db("demo");

PHP et mysql - 2. Principe de la connectivité PHP - bases de données php_mysql-7 C. Exécuter une requête SQL PHP permet d envoyer n importe quelle requête SQL au serveur en utilisant la commande mysql_query. Le nom d utilisateur et le mot de passe spécifiés en se connectant à la base de données déterminent si la requête peut être exécutée. La commande retourne un identificateur de résultat que l on stocke dans une variable pour l utiliser par la suite ($result). Syntaxe: mysql_query mysql_query(requête_sql); $result = mysql_query("select * FROM demo1"); La variable $result est "boolean" et contient à ce moment 1 (TRUE) si l opération a été effectuée 0 (FALSE) si il y a eu un problème. qui est très utile pour le déboguage!

PHP et mysql - 2. Principe de la connectivité PHP - bases de données php_mysql-8 D. Traitement des résultats Après avoir soumis une requête à mysql, la fonction mysql_query nous donne un identificateur de résultats ($result) qu il faut décortiquer et afficher. Il existe de multiples façons d accéder au résultat d une requête. En voici deux. Traitement indépendant du nom des champs Syntaxe: mysql_fetch_row mysql_fetch_row(identificateur) $row = mysql_fetch_row($result); prend un enregistrement dans le résultats. Cet enregistrement est un vecteur de valeurs qui correspond aux champs de la base de données. Syntaxe: mysql_num_fields mysql_num_fields(identificateur) $nb_champs = mysql_num_fields($result); donne le nombre de champs dans un enregistrement.

PHP et mysql - 2. Principe de la connectivité PHP - bases de données php_mysql-9 E. Gérer les erreurs (Warnings) Après avoir fait une opération mysql, PHP peut nous rétourner des "warnings" pour nous prévenir d une erreur. Il existe deux fonctions PHP à accéder aux erreurs: Syntaxe: mysql_errno() mysql_errno(identificateur) rétourne la valeur numérique d erreur de la dernière opération mysql ou zéro (0) s il n y pas des erreurs. Syntaxe: mysql_error() mysql_error(identificateur) rétourne la description d erreur de la dernière opération mysql ou un "string" vide "" dans le cas ou il n y a pas des erreurs. Exemple avec les deux fonctions: <?php mysql_connect("marliesle"); echo mysql_errno().": ".mysql_error()."<br>"; mysql_select_db("nonexistentdb"); echo mysql_errno().": ".mysql_error()."<br>"; $conn = mysql_query("select * FROM nonexistenttable"); echo mysql_errno().": ".mysql_error()."<br>";?>

PHP et mysql - 2. Principe de la connectivité PHP - bases de données php_mysql-10 Exemple 2-1: Traitement indépendant du nom des champs. Génération d une table HTML avec les enregistrements contenus dans un résultat url: /guides/php/examples/mysql-demo/dump_results_demo.php url: /guides/php/examples/mysql-demo/dump_results_demo.phps url: /guides/php/examples/mysql-demo/dump_results_demo.source <? mysql_pconnect("tecfasun1.unige.ch","nobody",""); mysql_select_db("demo"); $result = mysql_query("select * FROM demo1");?> <table border="1"> <tr> <? while ($row = mysql_fetch_row($result)) { echo "<tr>"; for ($i=0; $i<mysql_num_fields($result); $i++) { echo "<td>"; // test if this is the URL if ($i == 4) { echo "<a href='$row[$i]'>$row[$i]</a>"; } else { echo "$row[$i]"; } echo "</td>"; } }?> </table>

PHP et mysql - 2. Principe de la connectivité PHP - bases de données php_mysql-11 Traitement en utilisant le nom des champs mysql_num_rows Syntaxe: mysql_num_rows(identificateur); $nb_enregistrements = mysql_num_rows($result); Donne le nombre d enregistrements contenus dans le résultat identifié par $result mysql_result Syntaxe: mysql_result(identificateur, index, champ); $nom = mysql_result($result,0, fullname ); index désigne le numéro de l enregistrement. L indexation commence à 0! (zéro). A l index 0 correspond le premier enregistrement. champ désigne le nom du champ que l on veut récupérer.

PHP et mysql - 2. Principe de la connectivité PHP - bases de données php_mysql-12 Exemple 2-2: Traitement utilisant le nom des champs. Génération d une table HTML avec les enregistrements contenus dans un résultat url: Voir: /guides/php/examples/mysql-demo/dump_results_demo2.php url: Voir: /guides/php/examples/mysql-demo/dump_results_demo2.phps url: Voir: /guides/php/examples/mysql-demo/dump_results_demo2.source <? mysql_pconnect( "localhost", "nobody", "") or die( "Unable to connect to SQL server"); mysql_select_db("demo") or die ( "Unable to select database"); $result = mysql_query( "select * from demo1");?> <table border="1"> <? $i = 0; while ($i < mysql_num_rows($result)) { echo "<tr>"; echo "<td>"; echo mysql_result($result,$i, id ); echo "</td>"; echo "<td>"; echo mysql_result($result,$i, fullname ); echo "</td>"; echo "<td>";

PHP et mysql - 2. Principe de la connectivité PHP - bases de données php_mysql-13 echo mysql_result($result,$i, love ); echo "</td>"; echo "<td>"; echo mysql_result($result,$i, sports ); echo "</td>"; echo "</tr>"; $i++; } echo "</table>";?>

PHP et mysql - 3. Une petite application PHP - mysql : Le livre d or. php_mysql-14 3. Une petite application PHP - mysql : Le livre d or. url: http://tecfa.unige.ch/guides/tie/code/act-webm/comments.html 3.1 Détails des fichiers et des ressources Cette petite application se compose de 3 fichiers qui ont les fonctions suivantes : comments.html affiche le formulaire et envoi les données à comments-insert.php comments-insert.php écrit les données du formulaire dans la base de donnée mysql Serveur : tecfasun5.unige.ch base de donnée : mydb table : comments utilisateur : nobody comments-list.php affiche tous les enregistrements de la table comments dans un tableau.

PHP et mysql - 3. Une petite application PHP - mysql : Le livre d or. php_mysql-15 3.2 Structure de la table comments url: http://tecfa.unige.ch/guides/tie/code/act-webm/comments-table.txt create table comments ( id int(10) default 0 not null auto_increment, nom char(20) default not null, prenom char(20) default, email char(50) default, computer char(10), browser char(10), version char(10), comments char(200), primary key (id), key nom (nom) );

PHP et mysql - 3. Une petite application PHP - mysql : Le livre d or. php_mysql-16 3.3 Détails de l écriture des données url: http://tecfa.unige.ch/guides/tie/code/act-webm/comments-insert.phps On commence par ce connecter à la base de donnée $link = mysql_connect( "tecfasun5", "nobody", "") or die ( "Unable to connect to SQL server"); mysql_select_db("mydb", $link) or die ( "Unable to select database"); Ensuite, on construit la requête SQL à partir des données envoyées par le formulaire et on envoi la requête à mysql $query_string = "INSERT INTO comments (nom, prenom, email, computer, browser, version, comments) VALUES ( $nom, $prenom, $email, $computer, $browser, $version, $comments )"; $result = mysql_query ($query_string); A ce stade, la variable $result contient 1 (TRUE) si l opération a été effectuée 0 (FALSE) si il y a eu un problème. Il faut faire un test sur cette variable pour donner un feedback à l utilisateur

PHP et mysql - 3. Une petite application PHP - mysql : Le livre d or. php_mysql-17 if ($result) { echo "<p>vos données son bien enregistrées."; echo "<p>vous pouvez aller voir tous les <a href='commentslist.php'>commentaires</a>.\n"; } else { echo "<p>warning: ERROR writing on data base.</p>\n"; echo "<p>error returned by mysql : ". mysql_error(). "\n"; } La fonction mysql_error() retourne la dernière erreur mysql générée dans un string qu on peut imprimer. Très utilile pour debugger! En cas de problème, il est conseillé d imprimer à l écran la requête SQL pour pouvoir la vérifier echo $query_string; Dans de grosses applications avec beaucoup de données, il faut penser a libérer les ressources de la machine en fermant les connections ouvertes mysql_close($link);

PHP et mysql - 3. Une petite application PHP - mysql : Le livre d or. php_mysql-18 3.4 Détails de l affichage de la table url: http://tecfa.unige.ch/guides/tie/code/act-webm/comments-list.phps Après avoir établi la connection (voir paragraphe suivant) il faut extraire les données de la table comments $result = mysql_query( "select * from comments"); A ce stade, la variable $result contient : 0(false) si l opération a posé un problème l identificateur d un "result set" si l opération s est déroulée correctement Ce n est pas fait dans cet exemple mais il est préférable de faire un test sur cette variable avant la suite des opérations. if (!$result) { echo "ca marche pas :(";...arreter le programme } else {...traiter les données } Pour présenter les données à l écran, on les présente dans un tableau. Les lignes et les cellules sont crées dans une boucle qui va lire chaque enregistrement du "result set".

PHP et mysql - 3. Une petite application PHP - mysql : Le livre d or. php_mysql-19 $i = 0; while ($i < mysql_num_rows($result)) { echo "<tr>"; echo "<td>"; echo mysql_result($result,$i, id ); echo "</td>"; echo "<td>"; echo mysql_result($result,$i, nom ); echo "</td>"; echo "<td>"; echo mysql_result($result,$i, prenom ); echo "</td>";... suite du traitement des champs echo "</tr>"; } $i++;

PHP et mysql - 3. Une petite application PHP - mysql : Le livre d or. php_mysql-20