PHP - MySQL

publicité
Ceci est un document de travail non-exhaustif. Par Patrick Reuter. Version du 25 mars 2016
Définitions
•
•
•
•
Base de données
Table
Champs (colonne)
Enregistrement (donnée)
Il faut toujours distinguer la structure d’une base de données et les données d’une base de données.
Deux règles d’or : 1. Pas de duplication de données, et 2. La structure est indépendante des données
phpMyAdmin – Interface d’administration de la base de données
Adresse :
Objectif :
http://127.0.0.1/phpMyAdmin
phpMyAdmin vous permet de concevoir une base de données via une interface graphique
En particulier, dans le cadre de mon cours CSWD, vous l’utilisez pour les actions suivantes :
•
•
•
•
•
Création d’une seule base de données
o Dans le cadre du cours, nous travaillons sur une seule base de données s’appelant
« conceptionweb ». Cette base de données peut contenir plusieurs tables
Création des tables
o Choisissez des noms de tables en tout minuscules, sans accents, et sans espaces
Création des champs
o Dans chaque table, le premier champ doit s’appeler « id », il doit être de type entier INT et être une
clé primaire, et l’identifiant doit être attribué automatiquement (AUTO_INCREMENT, A_I)
Création d’enregistrements
o Pour chaque table, créer au moins 2 données pour bien comprendre votre modèle de conception de
données
Conventions de noms : Noms des tables en singulier, nom des champs en clé étrangère « id_table »
MySQL
Les instructions les plus courantes pour manipuler les données MySQL et leur utilisation dans mon cours CSWD
sont décrites ci-dessous :
•
•
•
•
INSERT :
permet d’ajouter un ou plusieurs enregistrements à une table
DELETE :
permet d’effacer un ou plusieurs enregistrements d’une table
UPDATE :
permet de modifier un ou plusieurs enregistrements d’une table
SELECT :
permet de récupérer un ou plusieurs enregistrements d’une table
L’instruction la plus courante pour manipuler la structure des bases de données est :
•
CREATE : permet de créer une base de données ou une table. Nous allons utiliser cette instruction uniquement
dans le cadre d’utilisation de phpMyAdmin
PHP : inclusion du fichier
Dans chaque fichier qui veut accéder à la base de données, incluez le fichier connexion_base.php comme suit :
<?php
require_once("connexion_base.php");
?>
Exemple en PHP de requête SELECT avec parcours de données
<?php
// exécuter une requete MySQL de type SELECT
$requete = "SELECT * FROM commentaire;";
$reponse = $pdo->prepare($requete);
$reponse->execute();
// récupérer tous les enregistrements dans un tableau
$enregistrements = $reponse->fetchAll();
// connaitre le nombre d'enregistrements
$nombreReponses = count($enregistrements);
// parcourir le tableau des enregistrements
for ($i=0; $i<count($enregistrements); $i++)
{
echo $enregistrements[$i]['nom'];
echo $enregistrements[$i]['texte'];
echo $enregistrements[$i]['date'];
}
?>
Exemple en PHP de requête INSERT
<?php
// exécuter une requete MySQL de type INSERT
$requete="INSERT INTO commentaire (nom, texte, date) VALUES (?,?,NOW())";
$reponse=$pdo->prepare($requete);
$reponse->execute(array($nom, $texte));
?>
Connexion en PHP à une base de données MySQL
connexion_base.php
(à inclure dans tous les fichiers utilisant la base de données)f
<?php
// définition des paramètres de connexion à la base de données
$config_base['hote']
= "127.0.0.1";
$config_base['utilisateur'] = "root";
$config_base['motdepasse'] = "";
$config_base['nom_base']
= "conceptionweb";
// connexion à la base de données
try {
$pdo = new PDO( "mysql:host={$config_base['hote']};
dbname={$config_base['nom_base']}",
"{$config_base['utilisateur']}",
"{$config_base['motdepasse']}");
// afficher les messages d'erreurs pour trouver les erreurs
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
// jeu de caractères : UTF-8
$pdo->query("SET NAMES utf8");
$pdo->query("SET CHARACTER SET utf8");
}
catch (PDOException $exception) {
echo "Connexion échouée : " . $exception->getMessage();
}
?>
Téléchargement