PHP MySQLi
Dans cet article, nous nous concentrerons sur l'extension PHP MySQLi, utilisée pour interagir avec les bases de données MySQL en PHP. Nous vous fournirons un aperçu de l'extension, son fonctionnement et des exemples d'utilisation.
Introduction à l'extension MySQLi
L'extension MySQLi est une extension PHP qui fournit une interface pour interagir avec les bases de données MySQL en PHP. Il s'agit d'une version améliorée de l'ancienne extension MySQL, offrant une meilleure sécurité, des performances accrues et de nouvelles fonctionnalités.
L'extension MySQLi propose deux interfaces différentes pour interagir avec les bases de données MySQL : une interface orientée objet et une interface procédurale. Bien que l'interface procédurale (mysqli_connect(), mysqli_query(), etc.) soit également disponible, l'approche orientée objet est généralement privilégiée dans le PHP moderne. Dans cet article, nous nous concentrerons sur l'interface orientée objet.
Comment utiliser l'extension MySQLi
L'utilisation de l'extension MySQLi est très simple. Il vous suffit de créer un nouvel objet MySQLi, qui représente une connexion à une base de données MySQL. Voici un exemple :
Comment utiliser l'extension MySQLi ?
<?php
$mysqli = new mysqli("localhost", "username", "password", "database");
if ($mysqli->connect_error) {
echo "Failed to connect to MySQL: " . $mysqli->connect_error;
exit();
}
$result = $mysqli->query("SELECT * FROM users");
while ($row = $result->fetch_assoc()) {
echo "Name: " . $row["name"] . " - Email: " . $row["email"] . "<br>";
}
$mysqli->close();
?>Dans cet exemple, nous créons un nouvel objet MySQLi avec le constructeur mysqli(), en passant le nom d'hôte, le nom d'utilisateur, le mot de passe et le nom de la base de données en tant qu'arguments. Nous vérifions ensuite si la connexion a réussi en examinant la propriété connect_error de l'objet MySQLi.
Nous exécutons ensuite une requête SELECT pour récupérer toutes les lignes d'une table nommée users. Nous parcourons l'ensemble de résultats à l'aide d'une boucle while et affichons le nom et l'e-mail de chaque utilisateur.
Enfin, nous fermons la connexion MySQLi à l'aide de la méthode close() de l'objet MySQLi.
Utilisation avancée
L'extension MySQLi fournit de nombreuses autres méthodes pour interagir avec les bases de données MySQL. Par exemple, vous pouvez utiliser la méthode prepare() pour préparer une instruction avec des espaces réservés, puis exécuter l'instruction avec différentes valeurs de paramètres. Voici un exemple :
Utilisation avancée de PHP MYSQLi
<?php
$age = 18;
$stmt = $mysqli->prepare("SELECT name, email FROM users WHERE age > ?");
$stmt->bind_param("i", $age);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
echo "Name: " . $row["name"] . " - Email: " . $row["email"] . "<br>";
}
$stmt->close();
?>Remarque : La méthode get_result() nécessite le pilote mysqlnd. Si votre environnement utilise un pilote différent, vous devrez lier les variables de résultat à l'aide de bind_result() à la place.
Dans cet exemple, nous utilisons la méthode prepare() pour préparer une instruction SELECT avec un espace réservé pour le paramètre age. Les instructions préparées séparent la logique SQL des données, ce qui empêche efficacement les attaques par injection SQL en veillant à ce que les entrées utilisateur ne soient jamais interprétées comme du code exécutable. Nous lions ensuite une valeur de 18 au paramètre à l'aide de la méthode bind_param(). Nous exécutons l'instruction avec la méthode execute() et récupérons l'ensemble de résultats avec la méthode get_result(). Nous parcourons ensuite l'ensemble de résultats et affichons le nom et l'e-mail de chaque utilisateur.
Conclusion
En conclusion, l'extension MySQLi est un outil puissant pour interagir avec les bases de données MySQL en PHP. En comprenant comment utiliser l'extension et ses scénarios d'utilisation avancée, vous pouvez tirer parti de cette fonctionnalité pour créer des applications puissantes et sécurisées basées sur des bases de données dans vos scripts PHP.
Pratique
Quelles sont les fonctionnalités importantes de PHP MySQLi ?