OUJOOD.COM
MySQL se connecter à une base de données
La base de données MySQL est très souvent employée avec PHP.
Devrais-je utiliser MySQLi ou PDO ?
La réponse la plus courte est "comme vous voulez".
MySQLi et PDO ont tous deux leurs avantages :
PDO fonctionnera sur 12 systèmes de bases de données différents, alors que MySQLi ne fonctionnera qu'avec les bases de données MySQL.
Donc, si vous devez changer votre projet pour utiliser une autre base de données, PDO rend le processus facile. Il vous suffit de modifier la chaîne de connexion et quelques requêtes. Avec MySQLi, vous devrez réécrire l'ensemble du code, y compris les requêtes.
Tous deux sont orientés objet, mais MySQLi offre également une API procédurale.
Les deux supportent les requêtes préparées (Prepared Statements).
Les requêtes préparées protègent des injections SQL et sont très importantes pour la sécurité des applications Web.)
Créer une connexion à une base de données MySQL
Dans ce chapitre et dans les suivants, nous présentons trois façons de travailler avec PHP et MySQL : 1- MySQLi (orienté objet) 2- MySQLi (procédurale) 3- PDO Pour pouvoir manipuler une base de données pour y enregistrer, modifier ou supprimer des données, vous devez créer une connexion à la dite base de données.Dans PHP, ceci est fait avec comme suit:
1- Avec MySQLi orienté objet
Exemple: Code php
<?php$servername = "localhost";
$username = "root";
$password = "";
$database = "mabase";
//Créer une connexion
$conn = mysqli_connect($servername, $username, $password,$database);
// Vérifier la connexion
if ($conn->connect_error) {
die("La connexion a échoué: " . $conn->connect_error);
}else echo "Connecté avec succès" ;
?>
Note sur l'exemple orienté objet ci-dessus :
$connect_error était désactivé jusqu'à PHP 5.2.9 et 5.3.0. Si vous devez assurer la compatibilité avec les versions de PHP antérieures à 5.2.9 et 5.3.0, utilisez plutôt le code suivant :
// Vérifier la connexion
if (mysqli_connect_error()) {
die("La connexion à la base de données a échoué : " . mysqli_connect_error()) ;
}
2- Exemple MySQLi procédural
Code php
<php$servername = "localhost";
$username = "root";
$password = "";
$database = "mabase";
//Créer une connexion
$conn = mysqli_connect($servername, $username, $password);
// Vérifier la connexion
if (!$conn) {
die("La connexion a échoué: " . . mysqli_connect_error());
}else echo "Connecté avec succès" ;
?>
3- Example PDO
Code php
<?php$servername = "localhost";
$username = "root";
$password = "";
$database = "mabase";
try {
$conn = new PDO("mysql:host=$servername;dbname=$database", $username, $password);
//Définir le mode erreur PDO en exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connecté avec succès";
} catch(PDOException $e) {
echo "Connecté avec succès: " . $e->getMessage();
}
?>
Note : Dans l'exemple PDO ci-dessus, nous avons également spécifié une base de données (myDB). PDO a besoin d'une base de données valide pour se connecter. Si aucune base de données n'est spécifiée, une exception est déclenchée.
Astuce : L'un des grands avantages de PDO est qu'il dispose d'une classe d'exception pour gérer 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 cesse de s'exécuter et passe directement au premier bloc catch(){ }.
Fermer la connexion
La connexion sera fermée automatiquement quand le script se terminera. Pour fermer la connexion avant, utilisez ce qui suit :
1- MySQLi orienté objet :
$conn->close() ;
2- MySQLi procédural :
mysqli_close($conn) ;
3- PDO :
$conn = null ;
Par carabde 20 Aout 2014