Tutoriel : Utiliser MySQL avec PHP

 
 

PHP est particulièrement adapté à l’utilisation de la base de données MySQL. Avec ce tutoriel nous allons vous donner quelques bonnes bases pour faire interagir MySQL et PHP.

PHP (PHP Hypertext Preprocessor) est à la fois un langage de programmation et une plate-forme sur laquelle on peut poser des frameworks (Zend Framework, Symfony, Laravel…) ou des briques logicielles (Logiciel de gestion de contenu, Gestion Electronique de Documents, CRM…).

Lorsqu’il s’agit de stocker des données de façon durable on peut envisager d’utiliser des fichiers car ils permettent d’enregistrer de gros volumes de données. Par contre dès que l’on souhaite manipuler ces données, nous sommes vite limités. Une autre approche, probablement la plus souvent employée, est de passer par une base de données : un logiciel conçu spécifiquement pour le stockage de données ; et, bien sûr, pour faciliter leur récupération.

Il existe deux approches pour utiliser une base de données avec PHP :

  • Vous pouvez, pour chaque type de SGBD, utiliser une extension native dédiée (mysqli pour MariaDB et MySQL, oci8 pour Oracle…). Bien que ces extensions aient des similitudes entre elles, vous aurez à manipuler des fonctions spécifiques différentes selon votre SGBD.
  • L’autre solution, plus souvent mise en place et privilégiée par de nombreux outils, est d’utiliser PDO. Il s’agit d’une extension qui vous permet de travailler de manière unifiée, quel que soit votre SGBD.

Installation de MySQL pour PHP

Pour installer les extensions correspondant à PDO il vous faut activer le noyau PDO ainsi que le pilote PDO spécifique à votre base de données. Pour installer PDO avec MySQL il vous faut également MySQL (ou MariaDB) d’installé. Généralement avec des outils comme easyPHP ou WampServer c’est déjà le cas !

DSN et ouverture de connexion

Avant de travailler avec un serveur de gestion de bases de données, il faut ouvrir une connexion vers celui-ci. Cette connexion sera le canal par lequel PHP et le serveur communiqueront l’un avec l’autre. L’ouverture de la connexion se fait en passant le DSN, le nom d’utilisateur et son mot de passe au constructeur de la classe PDO :

$dsn = 'mysql:dbname=madb01;host=localhost;charset=utf8';
$username = 'monuser';
$password = 'monpassword';
$db = new PDO($dsn, $username, $password);

Exécuter une requête

Une fois votre connexion ouverte et configurée, vous allez pouvoir utiliser pleinement votre base de données pour lire, modifier, ou supprimer des données. Pour cela, il n’existe pas de fonctions de lecture/écriture comme pour la gestion des fichiers : on utilise directement le langage SQL, dont les principes généraux sont rappelés un peu plus loin.
Pour envoyer une requête au serveur, on peut utiliser deux méthodes de l’objet PDO : query() et exec().

$sql = "select * from livres";
$stmt = $db->query($sql);
while (($livre = $stmt->fetch())) {
printf("%d - %s\n", $livre['id'], $livre['titre']);
}

Pour les requêtes d’insertion et de modification, on utilise la méthode exec() de l’objet de connexion, instance de la classe PDO.

$sql = <<<'SQL' insert into livres (titre, annee) values ('PHP 7 avancé', 2016) SQL; $nbLignes = $db->exec($sql);
printf("Nombre de lignes écritres : %d\n", $nbLignes);

Cet article est une brève introduction à l’utilisation de MySQL avec PHP que nous voyons pendant la formation PHP Maîtrise.

Les formations d’Openska dédiées à PHP sont nombreuses :

  • La formation PHP maîtrise permettra aux débutants et aux faux débutants de prendre en main PHP avec les bonnes pratiques.
  • La formation PHP avancé s’adresse aux développeurs qui veulent passer un cap dans leur expertise.
  • Nous avons d’autres formations plus spécialisées : symfony, Zend framework, Performances PHP, PHPUnit…

Openska est une société de conseil et de formation spécialisée dans le Web, la data et l’Opensource. Notre expertise PHP est très développée (livres PHP 7 avancé, performances LAMP…) et nous avons décidé d’utiliser cette expérience pour vous faire partager des bonnes pratiques.

Nos formations PHP pour débuter

Formation à Symfony 6™

Formation pour prendre en main Symfony

  • Spécialisation PHP
  • 3 jours - 21h
  • 1800€