Aller au contenu

Fonction PHP mysqli_prepare()

Dans cet article, nous discuterons de la fonction mysqli_prepare() en PHP, qui est utilisée pour préparer une instruction SQL en vue de son exécution.

Introduction à la fonction mysqli_prepare()

La fonction mysqli_prepare() est une fonction intégrée en PHP utilisée pour préparer une instruction SQL en vue de son exécution. Elle crée un objet d'instruction préparée et renvoie une référence vers cet objet. Les instructions préparées sont un outil puissant pour travailler avec des bases de données, car elles permettent d'écrire des requêtes SQL sécurisées et paramétrées.

Comment utiliser la fonction mysqli_prepare()

L'utilisation de la fonction mysqli_prepare() est simple. Voici un exemple :

Comment utiliser la fonction mysqli_prepare() ?

php
<?php
$mysqli = new mysqli("localhost", "username", "password", "database");

if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: " . $mysqli->connect_error;
    exit();
}

$query = "SELECT * FROM users WHERE id=?";
$stmt = $mysqli->prepare($query);

if (!$stmt) {
    echo "Prepare failed: " . $mysqli->error;
    exit();
}

$id = 1;
$stmt->bind_param("i", $id); // "i" specifies that the variable is an integer

if (!$stmt->execute()) {
    echo "Execute failed: " . $stmt->error;
} else {
    // Note: get_result() requires the mysqlnd driver.
    // For other drivers, use mysqli_stmt_fetch() instead.
    $result = $stmt->get_result();
    while ($row = $result->fetch_assoc()) {
        // process the row
    }
}
$stmt->close();
$mysqli->close();
?>

Dans cet exemple, nous créons d'abord un nouvel objet MySQLi en utilisant la classe mysqli. Nous vérifions ensuite si la connexion a réussi à l'aide de la propriété connect_errno. Si la connexion est réussie, nous définissons une instruction SQL qui sélectionne toutes les lignes de la table users où la colonne id correspond à une valeur de substitution. Nous appelons ensuite $mysqli->prepare() avec la chaîne de requête pour créer un objet d'instruction préparée, et nous vérifions que la préparation a réussi. Nous définissons ensuite la variable $id à 1 avant de la lier au placeholder à l'aide de $stmt->bind_param(). Le "i" dans la chaîne de type spécifie que la variable liée est un entier. Les autres types pris en charge incluent "s" pour chaîne, "d" pour double, et "b" pour BLOB. Nous exécutons ensuite l'instruction préparée avec $stmt->execute(), en ajoutant une gestion d'erreur au cas où l'exécution échouerait. Nous récupérons ensuite l'ensemble de résultats avec $stmt->get_result() et parcourons les lignes avec $result->fetch_assoc(). Enfin, nous fermons l'instruction et la connexion à l'aide de la méthode close().

Conclusion

En conclusion, la fonction mysqli_prepare() est un outil puissant pour travailler avec des bases de données en PHP. En comprenant comment utiliser cette fonction, vous pouvez écrire des instructions SQL sécurisées et paramétrées qui résistent aux attaques par injection SQL.

Pratique

What is true about prepared statements in PHP?

Trouvez-vous cela utile?

Aperçu dual-run — comparez avec les routes Symfony en production.