English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriel PHP de base

Tutoriel PHP avancé

PHP & MySQL

Manuel de référence PHP

Utilisation et exemple de la fonction PHP mysqli_autocommit()

PHP MySQLi Référence Manuel

La fonction mysqli_autocommit() ouvre ou ferme le mode de soumission automatique des commandes de transaction pour cette connexion de base de données

Définition et utilisation

La base de données MySQL possède une fonctionnalité appelée soumission automatique. Si vous l'activez, les modifications apportées dans la base de données seront automatiquement sauvegardées ; si vous le désactivez, vous devez sauvegarder explicitement les modifications.mysqli_autocommit() Ouvrir ou fermer le mode de soumission automatique des commandes de transaction pour cette connexion de base de données. Pour vérifier l'état actuel de soumission automatique des transactions de la connexion actuelle, vous pouvez exécuter cette requête SQL SELECT @@autocommit .

Cette fonction accepte une valeur booléenne en tant que paramètre. Si voustruetransmis à cette fonction, le mode de soumission automatique des transactions sera activé ; si vous transmettezfalse,alors le mode de soumission automatique des transactions sera désactivé.

Syntaxe

mysqli_autocommit($con, $mode);

Paramètres

NuméroParamètres et explications
1

con (obligatoire)

C'est un objet qui représente la connexion au serveur MySQL.

2

mode (obligatoire)

C'est une valeur booléenne qui indique si le mode de soumission automatique des transactions doit être activé.

Valeur de retour

La fonction PHP mysqli_autocommit() renvoie une valeur booléenne, true en cas de succès.true,en cas d'échec defalse.

Commentaires et conseils

 Cette méthode ne fonctionne pas dans les requêtes de formulaires qui ne supportent pas les transactions, telles que MyISAM ou ISAM.

PHP version

Cette fonction a été introduite dans la version PHP5introduit et peut être utilisé dans toutes les versions supérieures.

Exemple en ligne

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,
   Prénom VARCHAR(255), 
   Nom_de_Famille VARCHAR(255), 
   Lieu_de_Naissance VARCHAR(255), 
   Pays VARCHAR(255)
);

Les exemples suivants montrent que :mysqli_autocommit()L'utilisation de la fonction (dans un style procédural)-

<?php
   //Établir la connexion
   $con = mysqli_connect("localhost", "root", "password", "mydb");
   //Définir le commit automatique sur false
   mysqli_autocommit($con, False);
   //Insérer l'enregistrement dans la table my_team
   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')");
   //Vérifier le contenu de la table
   $result = mysqli_query($con, "SELECT * FROM my_team");
   print_r($result);
   //关闭连接
   mysqli_close($con);
?>

Résultat de la sortie

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

Comme nous avons désactivé l'option d'auto-commit dans l'exemple précédent, l'ajout des enregistrements ne sera pas sauvegardé dans la base de données, et si vous vérifiez le contenu de la table dans MySQL, cette table sera vide, comme suit ;

mysql> select * from my_team;
Ensemble vide (0.00 sec)

Pour sauvegarder les modifications dans la base de données, il faut utiliser la fonction mysqli_commit() à la fin du programme pour soumettre les modifications en tant que :

mysqli_commit($con);

Si vous vérifiez le contenu de la table my_team, vous pouvez voir les enregistrements insérés, comme suit :-

mysql> select * from my_team;
+----+------------+------------+----------------+-------------+
| ID | First_Name | Last_Name | Lieu_de_Naissance | Pays |
+----+------------+------------+----------------+-------------+
|  1 | Shikhar | Dhawan | Delhi | Inde |
|  2 | Jonathan | Trott | CapeTown | Afrique du Sud |
|  3 | Kumara | Sangakkara | Matale | Sri Lanka |
|  4 | Virat | Kohli | Delhi | Inde |
+----+------------+------------+----------------+-------------+
4 rows in set (0.00 sec)

Exemple en ligne

Dans le style orienté objet, la syntaxe de cette méthode est : $con-> autocommit()Voici un exemple de cette fonction dans un style orienté objet ;

//Établir la connexion
$con = new mysqli("localhost", "root", "password", "mydb");
//Définir le commit automatique sur true
$con-> autocommit(FALSE);
//Insérer l'enregistrement dans la table my_team
$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')");
//Vérifier le contenu de la table
$result = $con-> query("SELECT * FROM my_team");
print_r($result);
//Enregistrer les résultats
$con-> commit();
//关闭连接
$con -> close();
?>

Résultat de la sortie

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

Exemple en ligne

La fonction mysqli_autocommit() peut également être utilisée comme commit() lors de l'appel, elle sauvegarde le résultat de la requête dans la base de données :

//Établir la connexion
$con = mysqli_connect("localhost", "root", "password", "mydb");
//Créer la table
mysqli_query($con, "Create table players (First_Name VARCHAR(255), Last_Name VARCHAR(255), Country VARCHAR(255))")
//Définir le commit automatique sur false
mysqli_autocommit($con, False);
//Insérer l'enregistrement dans la table my_team
mysqli_query($con, "insert into players values('Shikhar', 'Dhawan', 'India');")
mysqli_query($con, "insert into players values('Jonathan', 'Trott', 'SouthAfrica');")
mysqli_autocommit($con, TRUE);
//关闭连接
mysqli_close($con);
?>

执行程序后,如果您验证 players 表的内容,则可以观察添加的记录,如下所示-

mysql> select * from players;
+------------+-----------+-------------+
| Prénom | Nom | Pays |
+------------+-----------+-------------+
| Shikhar | Dhawan | Inde |
| Jonathan | Trott | Afrique du Sud |
+------------+-----------+-------------+
2 rows in set (0.00 sec)

Exemple en ligne

<?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);
?>

执行以上程序后,如果验证表test的内容,则可以看到插入的记录为-

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

PHP MySQLi Référence Manuel