Fonction PHP mysqli_autocommit ()

Définition et utilisation

La base de données MySQL a une fonctionnalité nommée auto-commit si vous l'activez, les modifications effectuées dans les bases de données sont enregistrées automatiquement et, si vous la désactivez, vous devez enregistrer les modifications explicitement. lemysqli_autocommit() est utilisé pour activer / désactiver la fonction de validation automatique.

Cette fonction accepte une valeur booléenne comme paramètre. Si vous passez true à cette fonction, la fonction de validation automatique sera activée et si vous transmettez false, la fonctionnalité de validation automatique est désactivée.

Syntaxe

mysqli_autocommit($con, $mode);

Paramètres

Sr. Non Paramètre et description
1

con(Mandatory)

Il s'agit d'un objet représentant une connexion à MySQL Server.

2

mode(Mandatory)

Il s'agit d'une valeur booléenne indiquant si le mode de validation automatique doit être activé ou non.

Valeurs de retour

La fonction PHP mysqli_autocommit () renvoie une valeur booléenne qui est vraie en cas de succès et fausse 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

Supposons que nous ayons créé une table nommée my_team dans la base de données mydb, comme suit -

CREATE TABLE my_team(
   ID INT PRIMARY KEY AUTO_INCREMENT,
   First_Name VARCHAR(255), 
   Last_Name VARCHAR(255), 
   Place_Of_Birth VARCHAR(255), 
   Country VARCHAR(255)
);

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

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

   //Setting auto commit to false
   mysqli_autocommit($con, False);

   //Inserting a records into the my_team table
   mysqli_query($con, "insert into my_team values(1, 'Shikhar', 'Dhawan', 'Delhi', 'India')");
   mysqli_query($con, "insert into my_team values(2, 'Jonathan', 'Trott', 'CapeTown', 'SouthAfrica')");
   mysqli_query($con, "insert into my_team values(3, 'Kumara', 'Sangakkara', 'Matale', 'Srilanka')");
   mysqli_query($con, "insert into my_team values(4, 'Virat', 'Kohli', 'Delhi', 'India')");

   //Verifying the contents of the table
   $result = mysqli_query($con, "SELECT * FROM my_team");
   print_r($result);

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

Cela produira le résultat suivant -

mysqli_result Object
(
    [current_field] => 0
    [field_count] => 5
    [lengths] =>
    [num_rows] => 4
    [type] => 0
)

Depuis que nous avons désactivé l'option de validation automatique dans l'exemple précédent, les enregistrements ajoutés ne seront pas enregistrés dans la base de données et, si vous vérifiez le contenu de la table dans MySQL, il sera vide comme indiqué ci-dessous $ moins;

mysql> select * from my_team;
Empty set (0.00 sec)

Pour enregistrer les modifications dans la base de données, vous devez valider les modifications à la fin du programme en utilisant la fonction mysqli_commit () comme

mysqli_commit($con);

Si vous vérifiez le contenu de la table my_team alors, vous pouvez voir les enregistrements insérés comme indiqué ci-dessous -

mysql> select * from my_team;
+----+------------+------------+----------------+-------------+
| ID | First_Name | Last_Name  | Place_Of_Birth | Country     |
+----+------------+------------+----------------+-------------+
|  1 | Shikhar    | Dhawan     | Delhi          | India       |
|  2 | Jonathan   | Trott      | CapeTown       | SouthAfrica |
|  3 | Kumara     | Sangakkara | Matale         | Srilanka    |
|  4 | Virat      | Kohli      | Delhi          | India       |
+----+------------+------------+----------------+-------------+
4 rows in set (0.00 sec)

Exemple

La syntaxe de cette méthode dans le style orienté objet est $ con> autocommit () . Voici un exemple de cette fonction en mode orienté objet $ minus;

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

//Setting auto commit to true
$con->autocommit(FALSE);

//Inserting a records into the my_team table
$con->query( "insert into my_team values(1, 'Shikhar', 'Dhawan', 'Delhi', 'India')");
$con->query( "insert into my_team values(2, 'Jonathan', 'Trott', 'CapeTown', 'SouthAfrica')");
$con->query( "insert into my_team values(3, 'Kumara', 'Sangakkara', 'Matale', 'Srilanka')");
$con->query( "insert into my_team values(4, 'Virat', 'Kohli', 'Delhi', 'India')");

//Verifying the contents of the table
$result = $con->query( "SELECT * FROM my_team");
print_r($result);

//Saving the results
$con->commit();

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

Cela produira le résultat suivant -

mysqli_result Object
(
    [current_field] => 0
    [field_count] => 5
    [lengths] =>
    [num_rows] => 4
    [type] => 0
)

Exemple

La fonction mysqli_autocommit () fonctionne également comme commit () lors de l'appel, elle enregistre les résultats des requêtes en attente dans la base de données -

//Creating a connection
$con = mysqli_connect("localhost", "root", "password", "mydb");

//creating a table
mysqli_query($con, "Create table players (First_Name VARCHAR(255), Last_Name VARCHAR(255), Country VARCHAR(255))");

//Setting auto commit to false
mysqli_autocommit($con, False);

//Inserting a records into the my_team table
mysqli_query($con, "insert into players values('Shikhar', 'Dhawan', 'India')");
mysqli_query($con, "insert into players values('Jonathan', 'Trott', 'SouthAfrica')");

mysqli_autocommit($con, TRUE);

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

Après avoir exécuté le programme si vous vérifiez le contenu de la table des joueurs , vous pouvez observer les enregistrements ajoutés, comme indiqué ci-dessous -

mysql> select * from players;
+------------+-----------+-------------+
| First_Name | Last_Name | Country     |
+------------+-----------+-------------+
| Shikhar    | Dhawan    | India       |
| Jonathan   | Trott     | SouthAfrica |
+------------+-----------+-------------+
2 rows in set (0.00 sec)

Exemple

<?php
   $connection = mysqli_connect("localhost", "root", "password", "mydb");
   
   if (mysqli_connect_errno($connection)){
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
   }
   
   mysqli_autocommit($connection,FALSE);   
   
   mysqli_query($connection, "create table test(Name VARCHAR(255), Age INT)");   
   
   mysqli_query($connection, "INSERT INTO test VALUES ('Sharukh', 25)");
   mysqli_query($connection, "INSERT INTO test VALUES ('Kalyan', 30)");
   
   mysqli_commit($connection);
   mysqli_close($connection);
?>

Après avoir exécuté le programme ci-dessus si vous vérifiez, le contenu du test de la table , vous pouvez voir les enregistrements insérés comme -

mysql> select * from test;
+---------+------+
| Name    | Age  |
+---------+------+
| Sharukh |   25 |
| Kalyan  |   30 |
+---------+------+
2 rows in set (0.00 sec)