Fonction PHP mysqli_stmt_prepare ()

Définition et utilisation

le mysqli_stmt_prepare() prépare une instruction SQL pour l'exécution, vous pouvez utiliser des marqueurs de paramètre ("?") dans cette requête, leur spécifier des valeurs et l'exécuter plus tard.

Syntaxe

mysqli_stmt_prepare($stmt, $str);

Paramètres

Sr. Non Paramètre et description
1

stmt(Mandatory)

Ceci est un objet représentant une instruction (retourné par la fonction mysqli_stmt_init ()).

2

str(Mandatory)

Il s'agit d'une valeur de chaîne spécifiant la requête requise.

Valeurs de retour

Cette fonction renvoie un vcalue booléen qui est vrai en cas de succès et faux en cas d'échec.

Version PHP

Cette fonction a été introduite pour la première fois dans la version 5 de PHP et fonctionne dans toutes les versions ultérieures.

Exemple

L'exemple suivant montre l'utilisation de la fonction mysqli_stmt_prepare () (dans le style procédural) -

<?php
   $con = mysqli_connect("localhost", "root", "password", "mydb");

   $query = "CREATE TABLE Test(Name VARCHAR(255), AGE INT)"; 
   mysqli_query($con, $query);
   print("Table Created.....\n");

   //Initializing the statement
   $stmt = mysqli_stmt_init($con);

   mysqli_stmt_prepare($stmt, "INSERT INTO Test values(?, ?)");
   mysqli_stmt_bind_param($stmt, "si", $Name, $Age);
   $Name = 'Raju';
   $Age = 25;
   print("Record Inserted.....");

   //Executing the statement
   mysqli_stmt_execute($stmt);

   //Closing the statement
   mysqli_stmt_close($stmt);

   //Closing the connection
   mysqli_close($con);
?>

Cela produira le résultat suivant -

Table Created.....
Record Inserted.....

Exemple

Dans le style orienté objet, la syntaxe de cette fonction est $ stmt-> prepare (); Voici l'exemple de cette fonction dans le style orienté objet $ minus;

<?php
   $con = new mysqli("localhost", "root", "password", "mydb");

   $query = "CREATE TABLE Test(Name VARCHAR(255), AGE INT)"; 
   $con->query($query);
   print("Table Created.....\n");

   //Initializing the statement
   $stmt = $con->stmt_init();

   $stmt->prepare("INSERT INTO Test values(?, ?)");
   $stmt->bind_param("si", $Name, $Age);
   $Name = 'Raju';
   $Age = 25;
   print("Record Inserted.....");

   //Executing the statement
   $stmt->execute();

   //Closing the statement
   $stmt->close();

   //Closing the connection
   $con->close();
?>

Cela produira le résultat suivant -

Table Created.....
Record Inserted.....

Exemple

Voyons un autre exemple de cette fonction utilisant la requête SELECT (en style orienté objet) -

<?php
   //Creating a connection
   $con = new mysqli("localhost", "root", "password", "mydb");

   $con -> query("CREATE TABLE myplayers(ID INT, First_Name VARCHAR(255), Last_Name VARCHAR(255), Place_Of_Birth VARCHAR(255), Country VARCHAR(255))");
   print("Table Created.....\n");
   $con -> query("INSERT INTO myplayers values(1, 'Sikhar', 'Dhawan', 'Delhi', 'India')");
   $con -> query("INSERT INTO myplayers values(2, 'Jonathan', 'Trott', 'CapeTown', 'SouthAfrica')");
   $con -> query("INSERT INTO myplayers values(3, 'Kumara', 'Sangakkara', 'Matale', 'Srilanka')");
   $con -> query("INSERT INTO myplayers values(4, 'Virat', 'Kohli', 'Delhi', 'India')");
   print("Records Inserted.....\n");

   //Initiating the statement object
   $stmt = $con->stmt_init();

   $stmt -> prepare("SELECT * FROM myplayers WHERE country=?");
   $stmt -> bind_param("s", $country);
   $country = "India";

   //Executing the statement
   $stmt->execute();

   //Closing the statement
   $stmt->close();

   //Closing the connection
   $con->close();
?>

Cela produira le résultat suivant -

Table Created.....
Records Inserted.....