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 APIs différentes en fonchon des bases Principe similaire pour toutes les bases - Connexion au serveur (host + user + password) - Choix de la base - ExécuHon d une requête - Traitement ligne par ligne du résultat - Fermeture de la connexion au serveur UnificaHon : PDO (PHP Data Objects)
Accés aux bases de données APIs différentes en fonchon des bases Principe similaire pour toutes les bases - Connexion au serveur (host + user + password) - Choix de la base - ExécuHon d une requête - Traitement ligne par ligne du résultat - Fermeture de la connexion au serveur UnificaHon : PDO (PHP Data Objects) pas dans ce cours
PHP et MySQL Depuis version 5 de PHP, deux extensions pour accéder à base de données MySQL - extension mysql - extension mysqli (dite mysql améliorée ) accès procédural accès objet Très proches en termes de fonchonnalités - Mêmes fonchons avec syntaxes idenhques ou compahbles
PHP et MySQL Depuis version 5 de PHP, deux extensions pour accéder à base de données MySQL - extension mysql obsolète - extension mysqli (dite mysql améliorée ) accès procédural accès objet Très proches en termes de fonchonnalités - Mêmes fonchons avec syntaxes idenhques ou compahbles
PHP et MySQL Depuis version 5 de PHP, deux extensions pour accéder à base de données MySQL - extension mysql obsolète - extension mysqli (dite mysql améliorée ) accès procédural accès objet pas dans ce cours Très proches en termes de fonchonnalités - Mêmes fonchons avec syntaxes idenhques ou compahbles
PHP-MySQL et phpmyadmin
Connexion au serveur MySQL mysqli mysqli_connect(string $host, string $username, string $passwd, string $dbname) - $host est une chaîne contenant le nom du serveur - $username est le nom sous lequel l uhlisateur est autorisé à accéder au serveur - $passwd est le mot de passe associé à l uhlisateur - $dbname spécifie la base de données par défaut à uhliser lors de l exécuhon de requêtes
Connexion au serveur MySQL mysqli_connect retourne un objet (de type mysqli) qui représente la connexion au serveur MySQL. Si la connexion n est pas établie, elle retourne FALSE. Il faut donc toujours tester la réussite de la connexion avant d effectuer d autres opérahons.
Connexion au serveur MySQL mysqli_connect retourne un objet (de type mysqli) qui représente la connexion au serveur MySQL. Si la connexion n est pas établie, elle retourne FALSE. Il faut donc toujours tester la réussite de la connexion avant d effectuer d autres opérahons.
Connexion au serveur MySQL mysqli_connect retourne un objet (de type mysqli) qui représente la connexion au serveur MySQL. Si la connexion n est pas établie, elle retourne FALSE. Il faut donc toujours tester la réussite de la connexion avant d effectuer d autres opérahons.
Connexion au serveur MySQL Déconnexion : - La connexion établie prend fin automahquement quand le script PHP est terminé - Dès que possible : libèrer le serveur MySQL - bool mysqli_close(myqli $conn) $conn est l idenhfiant de connexion retourné par la fonchon mysqli_connect() ce_e fonchon retourne TRUE en cas de succès et FALSE si une erreur survient
Connexion au serveur MySQL Choix de la base de données : - Base de données par défaut pour une connexion : sélechonnée avec la fonchon mysqli_connect() (4ème paramètre) ; choix d une autre base avec - bool mysqli_select_db(mysqli $conn, string $dbname) $conn est l idenhfiant de connexion retourné par la fonchon mysqli_connect() $dbname conhent le nom de la base de données ce_e fonchon retourne TRUE si la base $dbname existe et FALSE dans le cas contraire
Envoi de requêtes SQL au serveur Pour envoyer une requête : - mixed mysqli_query(mysqli $conn, string $query) $conn est l idenhfiant de connexion retourné par la fonchon mysqli_connect() la chaîne $query conhent le code de la requête SQL ce_e fonchon retourne FALSE en cas d echec. Pour des requêtes de type SELECT, SHOW, DESCRIBE ou EXPLAIN réussies, elle retournera un objet (de type mysqli_result). Pour les autres types de requêtes (UPDATE, DELETE,...) ayant réussies, elle retournera TRUE.
Envoi de requêtes SQL au serveur Il est recommandé d effectuer un test pour vérifier la bonne réalisahon de chaque requête SQL dans un script
Envoi de requêtes SQL au serveur Il est recommandé d effectuer un test pour vérifier la bonne réalisahon de chaque requête SQL dans un script
Envoi de requêtes SQL au serveur Il est recommandé d effectuer un test pour vérifier la bonne réalisahon de chaque requête SQL dans un script
Lecture du résultat d une requête Le résultat de l execuhon d une requête SELECT peut être lu par la fonchon mysqli_fetch_array() - mixed mysqli_fetch_array(mysqli_result $result, int $typetab) $result est l idenhfiant de jeu de résultats retourné par la fonchon mysqli_query() ce_e fonchon retourne un tableau contenant autant d éléments qu il y a de colonnes précisées dans la requête SELECT
Lecture du résultat d une requête $typetab est une constante enhère précisant si le tableau retourné doit être associahf (valeur MYSQLI_ASSOC), indicé (valeur MYSQLI_NUM) ou les deux à la fois (valeur MYSQLI_BOTH, qui est la valeur par défaut) Si le tableau est associahf, les clés du tableau sont les noms des colonnes de la table interrogée Si le tableau est indicé, l indice d un élément est celui de la colonne dans la requête, la première colonne ayant l indice 0
Lecture du résultat d une requête chaque nouvel appel de mysqli_fetch_array() retourne la ligne suivante du résultat indenhfié par $result, ou FALSE s il n y a plus de ligne à lire parcours du résultat en uhlisant des boucles
Lecture du résultat d une requête chaque nouvel appel de mysqli_fetch_array() retourne la ligne suivante du résultat indenhfié par $result, ou FALSE s il n y a plus de ligne à lire parcours du résultat en uhlisant des boucles
Lecture du résultat d une requête chaque nouvel appel de mysqli_fetch_array() retourne la ligne suivante du résultat indenhfié par $result, ou FALSE s il n y a plus de ligne à lire parcours du résultat en uhlisant des boucles
Lecture du résultat d une requête Les deux autres fonchons suivantes perme_ent de récupérer une ligne de résultat à la fois dans un tableau - mixed mysqli_fetch_assoc(mysqli_result $result), qui retourne un tableau uniquement associahf dont les clés sont les noms des colonnes de la table interrogée - mixed mysqli_fetch_row(mysqli_result $result), qui retourne un tableau uniquement indicé dont les indices sont les numéros des colonnes de la table interrogée - mysqli_fetch_assoc($result) se comporte comme mysqli_fetch_array($result, MYSQLI_ASSOC) - mysqli_fetch_row($result) se comporte comme mysqli_fetch_array($result, MYSQLI_NUM)