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

PHP 基础教程

PHP 高级教程

PHP & MySQL

PHP 参考手册

PHP mysqli_commit() 函数用法及示例

PHP MySQLi Référence Manuel

mysqli_commit()函数提交一个事务

定义和用法

MySQL数据库具有一项称为自动提交事务(如果您将其打开),则数据库中所做的更改将自动保存;如果将其关闭,则需要显式保存更改。

mysqli_commit()函数保存当前的事务。

语法

mysqli_commit($con, [$flags, $name]);

参数

序号参数及说明
1

con (obligatoire)

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

2

flags (optionnel)

peut être l'un des constantes suivantes :

  • MYSQLI_TRANS_COR_AND_CHAIN

  • MYSQLI_TRANS_COR_AND_NO_CHAIN

  • MYSQLI_TRANS_COR_RELEASE

  • MYSQLI_TRANS_COR_NO_RELEASE

3

name (optionnel)

C'est un nom de valeur, lorsqu'il est donné, il sera exécuté avec COMMIT /* name */pour exécuter.

Retour de la valeur

La fonction mysqli_commit() renvoie une valeur booléenne, qui esttrue,sinonfalse.

Version PHP

Cette fonction a été initialement introduite dans la version PHP5introduit dans les versions et est disponible 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,
   First_Name VARCHAR(255), 
   Last_Name VARCHAR(255), 
   Place_Of_Birth VARCHAR(255), 
   Country VARCHAR(255)
);

Voici un exemple qui montremysqli_commit()Utilisation de la fonction (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_commit($con);
   //关闭连接
   mysqli_close($con);
?>

Résultat de la sortie

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

Si vous vérifiez le contenu de la table my_team, vous pouvez observer les données enregistrées, comme suit-

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

Exemple en ligne

Méthode de style orienté objet, syntaxe :}}$con-> commit()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);
//Sauvegarder le résultat
$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

Laissons voir un autre exemple. Ici, nous avons créé une table, désactivé l'option de commit automatique, inséré un enregistrement et sauvegardé les modifications. Après la sauvegarde, nous avons inséré un autre enregistrement :

//Établir la connexion
$con = mysqli_connect("localhost", "root", "password", "mydb");
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_commit($con);
mysqli_query($con, "insert into players values('Jonathan', 'Trott', 'SouthAfrica')");
//关闭连接
mysqli_close($con);
?>

由于我们尚未保存上一个插入查询,因此在执行上述程序后,如果您验证 players 表的内容,则只能看到一条记录,如下所示-

mysql> select * from players;
+------------+-----------+---------+
| Prénom | Nom | Pays |
+------------+-----------+---------+
| Shikhar | Dhawan | Inde |
+------------+-----------+---------+
1 row in set (0.00 sec)

Exemple en ligne

<?php
   $connection = mysqli_connect("localhost", "root", "password", "mydb");
   
   if (mysqli_connect_errno($connection)){
      echo "连接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 | Age |
+---------+------+
| Sharukh |   25 |
| Kalyan |   30 |
+---------+------+
2 rows in set (0.00 sec)

PHP MySQLi Référence Manuel