Cours PHP - leçon 3.1 - Travail avec la base de données MySQL. Création des tables.
Dans la leçon précédente, nous avons créé une connexion à la base de données. Dans cette leçon, nous allons créer des tables pour notre futur site. Commençons par ajouter le nom de la base de données nécessaire dans la classe simpleCMS :
class simpleCMS { // classe de gestion public $host = 'localhost'; // variables pour la connexion à la base public $username = 'root'; public $password = ''; public $db = 'testDB';
Maintenant, il faut créer cette base de données sur notre serveur MySQL. Si vous utilisez également Denwer, phpMyAdmin est inclus. Accédez à phpMyAdmin via ce lien et créez une nouvelle base :
Après avoir configuré et créé la base, ajustons la connexion au serveur MySQL en PHP. Modifions la méthode de connexion à la base :
public function connectDB() { $link = mysql_connect($this->host, $this->username, $this->password); // connexion au serveur MySQL if (!$link) { die('Erreur de connexion : ' . mysql_error()); } mysql_select_db($this->db) or die("Base de données introuvable. " . mysql_error()); // sélection base return $link; }
Si tout est correct, aucun message ne s’affichera. Créons maintenant une table. Ajoutons la méthode buildDB(), que nous appellerons depuis connectDB() :
public function connectDB() { $link = mysql_connect($this->host, $this->username, $this->password); if (!$link) { die('Erreur de connexion : ' . mysql_error()); } mysql_select_db($this->db) or die("Base de données introuvable. " . mysql_error()); $this->buildDB(); // appel de méthode interne return $link; } public function buildDB(){ }
À chaque connexion, la méthode buildDB() pourra vérifier que toutes les tables nécessaires sont présentes. Pour cela, envoyons une requête SQL :
public function buildDB(){ $sql = 'CREATE TABLE IF NOT EXISTS messages ( title VARCHAR(150), bodytext TEXT, created VARCHAR(100) )'; return mysql_query($sql); }
Voyons comment cela fonctionne :
On stocke d’abord la requête SQL dans une variable chaîne, puis on l’envoie via mysql_query(), qui l’exécute sur la base.
La requête commence par CREATE TABLE, pour créer la table. Puis IF NOT EXISTS vérifie si la table messages existe déjà.
Entre parenthèses suivent les champs à créer : title, bodytext, created, avec leurs types. VARCHAR(150) est une chaîne de 150 caractères max, TEXT un champ texte permettant de stocker des articles entiers.
Enregistrez simpleCMS.php et lancez index.php pour créer la table messages.
Nous utiliserons cette table dans la prochaine leçon. Si vous avez des questions ou des erreurs, laissez un commentaire.