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

PHP 基础教程

PHP 高级教程

PHP & MySQL

PHP 参考手册

PHP mysqli_commit() 函数用法及示例

PHP MySQLi Referenzhandbuch

mysqli_commit()函数提交一个事务

定义和用法

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

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

语法

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

参数

序号参数及说明
1

con (notwendig)

Dies ist ein Objekt, das die Verbindung zum MySQL-Server darstellt.

2

flags (optional)

kann einer der folgenden Konstanten sein:

  • MYSQLI_TRANS_COR_AND_CHAIN

  • MYSQLI_TRANS_COR_AND_NO_CHAIN

  • MYSQLI_TRANS_COR_RELEASE

  • MYSQLI_TRANS_COR_NO_RELEASE

3

name (optional)

Dies ist ein Name-Wert, der bei Angabe mit COMMIT /* name */in der Form ausgeführt.

Rückgabewert

Der mysqli_commit()-Funktion wird ein boolesches Wert zurückgegeben, wenn der Commit-Vorgang erfolgreich ist, danntrue,sonstfalse.

PHP-Version

Diese Funktion wurde ursprünglich in der PHP-Version5eingeführt und in allen höheren Versionen verfügbar.

Online-Beispiel

Angenommen, wir haben in der Datenbank mydb eine Tabelle namens my_team erstellt, wie folgt-

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

Nachfolgender Beispiel zeigtmysqli_commit()Verwendung des Funktions (prozeduraler Stil)-

<?php
   //Verbindung herstellen
   $con = mysqli_connect("localhost", "root", "password", "mydb");
   //Der automatische Commit wird auf false gesetzt
   mysqli_autocommit($con, False);
   //Das Protokoll wird in die Tabelle my_team eingefügt
   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')");
   //Inhalt der Tabelle überprüfen
   $result = mysqli_query($con, "SELECT * FROM my_team");
   print_r($result);
   mysqli_commit($con);
   //Verbindung schließen
   mysqli_close($con);
?>

Ergebnisse ausgeben

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

Wenn Sie den Inhalt der Tabelle my_team validieren, können Sie die gespeicherten Daten wie folgt beobachten-

mysql> select * von 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 Zeilen in Set (0.00 sec)

Online-Beispiel

Methode im objektorientierten Stil, Syntax:}}$con-> commit()Hier ist ein Beispiel für diese Funktion im objektorientierten Stil;

//Verbindung herstellen
$con = new mysqli("localhost", "root", "password", "mydb");
//Der automatische Commit wird auf true gesetzt
$con-> autocommit(FALSE);
//Das Protokoll wird in die Tabelle my_team eingefügt
$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')");
//Inhalt der Tabelle überprüfen
$result = $con-> query("SELECT * FROM my_team");
print_r($result);
//Ergebnisse speichern
$con-> commit();
//Verbindung schließen
$con -> close();
?>

Ergebnisse ausgeben

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

Online-Beispiel

Lassen Sie uns einen anderen Beispiel betrachten. Hier haben wir eine Tabelle erstellt, den automatischen Commit-Modus deaktiviert, ein Protokoll eingefügt und die Änderungen gespeichert. Nach dem Speichern haben wir ein weiteres Protokoll eingefügt:

//Verbindung herstellen
$con = mysqli_connect("localhost", "root", "password", "mydb");
mysqli_query($con, "Create table players (First_Name VARCHAR(255), Last_Name VARCHAR(255), Country VARCHAR(255))");
//Der automatische Commit wird auf false gesetzt
mysqli_autocommit($con, False);
//Das Protokoll wird in die Tabelle my_team eingefügt
mysqli_query($con, "insert into players values('Shikhar', 'Dhawan', 'India');")
mysqli_commit($con);
mysqli_query($con, "insert into players values('Jonathan', 'Trott', 'SouthAfrica')");
//Verbindung schließen
mysqli_close($con);
?>

Da wir die vorherige INSERT-Anfrage noch nicht gespeichert haben, wenn Sie nach Ausführung des obigen Programms players wenn der Inhalt der Tabelle überprüft wird, kann nur ein Eintrag gesehen werden, wie folgt:-

mysql> select * von players;
+------------+-----------+---------+
| First_Name | Last_Name | Land |
+------------+-----------+---------+
| Shikhar | Dhawan | Indien |
+------------+-----------+---------+
1 Zeile in Set (0.00 sec)

Online-Beispiel

<?php
   $connection = mysqli_connect("localhost", "root", "password", "mydb");
   
   if (mysqli_connect_errno($connection)){
      echo "Verbindung zu MySQL fehlgeschlagen: " . mysqli_connect_error();
   }
   
   mysqli_autocommit($connection, FALSE);   
   
   mysqli_query($connection, "create table test(Name VARCHAR(255), Alter 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);
?>

Nach Ausführung des obigen Programms, wenn die Tabelletestwenn der Inhalt der Tabelle überprüft wird, kann man die eingefügten Einträge sehen:-

mysql> select * von test;
+---------+------+
| Name | Alter |
+---------+------+
| Sharukh |   25 |
| Kalyan |   30 |
+---------+------+
2 Zeilen in Set (0.00 sec)

PHP MySQLi Referenzhandbuch