Tutoriel PHP

ACCUEIL PHP Introduction PHP Installation PHP Syntaxe PHP Commentaires PHP Variables PHP Écho PHP / Impression Types de données PHP Chaînes PHP Numéros PHP Mathématiques PHP Constantes PHP Opérateurs PHP PHP Si... Sinon... Sinon Commutateur PHP Boucles PHP Fonctions PHP Tableaux PHP Superglobales PHP Expression régulière PHP

Formulaires PHP

Gestion des formulaires PHP Validation de formulaire PHP Formulaire PHP requis URL/courriel du formulaire PHP Formulaire PHP terminé

PHP Avancé

Date et heure PHP Inclure PHP Gestion des fichiers PHP Fichier PHP Ouvrir/Lire Création/écriture de fichier PHP Téléchargement de fichier PHP Cookies PHP Séances PHP Filtres PHP Filtres PHP avancés Fonctions de rappel PHP PHPJSON Exception PHP

POO PHP

PHP Qu'est-ce que la POO Classes/Objets PHP Constructeur PHP Destructeur PHP Modificateurs d'accès PHP Héritage PHP Constantes PHP Classes abstraites PHP Interface PHP Caractéristiques PHP Méthodes statiques PHP Propriétés statiques PHP Espaces de noms PHP Itérables PHP

Base de données MySQL

Base de données MySQL Connexion MySQL Créer une base de données MySQL Créer une table MySQL MySQL Insérer des données MySQL obtenir le dernier ID MySQL Insérer plusieurs MySQL préparé MySQL Sélectionner les données MySQL Où Trier MySQL par MySQL Supprimer les données Données de mise à jour MySQL Données de limite MySQL

XML PHP

Analyseurs PHP XML Analyseur PHP SimpleXML PHP SimpleXML - Obtenir Expatriation PHP XML PHP XML DOM

PHP -AJAX

Introduction à AJAX PHP AJAX Base de données AJAX XML AJAX Recherche en direct AJAX Sondage AJAX

Exemples PHP

Exemples PHP Compilateur PHP Questionnaire PHP Exercices PHP Certificat PHP

Référence PHP

Présentation de PHP Tableau PHP Calendrier PHP Date PHP Annuaire PHP Erreur PHP Exception PHP Système de fichiers PHP Filtre PHP FTP PHP PHPJSON Mots clés PHP PHP LibxmlComment Messagerie PHP Mathématiques PHP Divers PHP PHP MySQL Réseau PHP Contrôle de sortie PHP Expression régulière PHP PHP SimpleXML Flux PHP Chaîne PHP Gestion des variables PHP Analyseur PHP XML Code postal PHP Fuseaux horaires PHP

Connexion PHP à MySQL


PHP 5 et versions ultérieures peuvent fonctionner avec une base de données MySQL en utilisant :

  • Extension MySQLi (le "i" signifie amélioré)
  • PDO (objets de données PHP)

Les versions antérieures de PHP utilisaient l'extension MySQL. Cependant, cette extension a été dépréciée en 2012.


Dois-je utiliser MySQLi ou PDO ?

Si vous avez besoin d'une réponse courte, ce serait "Tout ce que vous voulez".

MySQLi et PDO ont tous deux leurs avantages :

PDO fonctionnera sur 12 systèmes de bases de données différents, tandis que MySQLi ne fonctionnera qu'avec les bases de données MySQL.

Ainsi, si vous devez changer votre projet pour utiliser une autre base de données, PDO facilite le processus. Vous n'avez qu'à modifier la chaîne de connexion et quelques requêtes. Avec MySQLi, vous devrez réécrire tout le code - requêtes incluses.

Les deux sont orientés objet, mais MySQLi propose également une API procédurale.

Les deux prennent en charge les instructions préparées. Les instructions préparées protègent de l'injection SQL et sont très importantes pour la sécurité des applications Web.


Exemples MySQL dans la syntaxe MySQLi et PDO

Dans ce chapitre et dans les chapitres suivants, nous montrons trois manières de travailler avec PHP et MySQL :

  • MySQLi (orienté objet)
  • MySQLi (procédural)
  • AOP

Installation de MySQLi

Pour Linux et Windows : l'extension MySQLi est automatiquement installée dans la plupart des cas, lorsque le package php5 mysql est installé.

Pour plus de détails sur l'installation, rendez-vous sur : http://php.net/manual/en/mysqli.installation.php


Installation AOP

Pour plus de détails sur l'installation, rendez-vous sur : http://php.net/manual/en/pdo.installation.php



Ouvrir une connexion à MySQL

Avant de pouvoir accéder aux données de la base de données MySQL, nous devons pouvoir nous connecter au serveur :

Exemple (MySQLi orienté objet)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

// Create connection
$conn = new mysqli($servername, $username, $password);

// Check connection
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>

Remarque sur l'exemple orienté objet ci-dessus :

$connect_error était cassé jusqu'à PHP 5.2.9 et 5.3.0. Si vous devez vous assurer de la compatibilité avec les versions PHP antérieures à 5.2.9 et 5.3.0, utilisez plutôt le code suivant :

// Check connection
if (mysqli_connect_error()) {
  die("Database connection failed: " . mysqli_connect_error());
}

Exemple (procédural MySQLi)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

// Create connection
$conn = mysqli_connect($servername, $username, $password);

// Check connection
if (!$conn) {
  die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>

Exemple (AOP)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

try {
  $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
  // set the PDO error mode to exception
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  echo "Connected successfully";
} catch(PDOException $e) {
  echo "Connection failed: " . $e->getMessage();
}
?>

Remarque : Dans l'exemple de PDO ci-dessus, nous avons également spécifié une base de données (myDB) . PDO nécessite une base de données valide pour se connecter. Si aucune base de données n'est spécifiée, une exception est levée.

Astuce : Un grand avantage de PDO est qu'il a une classe d'exception pour gérer tous les problèmes qui peuvent survenir dans nos requêtes de base de données. Si une exception est levée dans le bloc try{ }, le script arrête de s'exécuter et passe directement au premier bloc catch(){ }.


Fermer la connexion

La connexion sera fermée automatiquement à la fin du script. Pour fermer la connexion avant, utilisez ce qui suit :

MySQLi orienté objet :

$conn->close();

Procédure MySQLi :

mysqli_close($conn);

AOP :

$conn = null;