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

Online-Tools

PHP-Basis-Tutorial

PHP-Advanced-Tutorial

PHP & MySQL

Object-Funktion

PHP MySQLi Referenzhandbuch

Verwendung und Beispiel der Funktion PHP mysqli_autocommit()

Die Funktion mysqli_autocommit() öffnet oder schließt den automatischen Submit-Transaktionsmodus der aktuellen Datenbankverbindung

Definition und Verwendungmysqli_autocommit(); MySQL-Datenbanken haben eine Eigenschaft namens automatische Übertragung, wenn Sie sie aktivieren, werden die in der Datenbank vorgenommenen Änderungen automatisch gespeichert; wenn Sie sie deaktivieren, müssen die Änderungen ausdrücklich gespeichert werden.

an diese Funktion übergeben wird, wird der automatische Submit-Transaktionsmodus geöffnet oder geschlossen. Um den aktuellen Status der automatischen Transaktionsabgabe der Verbindung zu überprüfen, können Sie diesen SQL-Befehl ausführen: SELECT @@autocommit .truean diese Funktion übergeben wird, wird der automatische Submit-Transaktionsmodus aktiviert; wennfalsewird der automatische Submit-Transaktionsmodus deaktiviert.

Syntax

mysqli_autocommit($con, $mode);

Parameter

ReihennummerParameter und Erklärung
1

con(Notwendig)

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

2

mode(Notwendig)

Dies ist ein boolescher Wert, der angibt, ob der automatische Submit-Transaktionsmodus geöffnet werden sollte.

Rückgabewert

Die Funktion PHP mysqli_autocommit() gibt einen boolschen Wert zurück, im Erfolgsfalltruewird im Falle eines Fehlersfalse.

Kommentare und Hinweise

 Diese Methode funktioniert nicht in Formularen, die keine Transaktionsverarbeitung unterstützen, wie z.B. MyISAM oder ISAM.

PHP 版本

此函数最初是在 PHP 版本5中引入,并且可以在所有更高版本中使用。

Online-Beispiel

假设我们在数据库 mydb 中创建了一个名为 my_team 的表,如下所示-

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

以下示例演示了mysqli_autocommit();函数的用法(以面向过程风格)-

<?php
   //Verbindung herstellen
   $con = mysqli_connect("localhost", "root", "password", "mydb");
   //Das automatische Commit wird auf false gesetzt.
   mysqli_autocommit($con, False);
   //Die Datenbankzeile 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);
   //Verbindung schließen
   mysqli_close($con);
?>

Ergebnisse ausgeben

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

由于在上一示例中我们已关闭了自动提交选项,因此记录添加将不会保存在数据库中,并且,如果您在 MySQL 中验证表的内容,则该表将为空,如下所示;

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

要保存数据库中的更改,需要在程序结束时使用 mysqli_commit() 函数将更改提交为

mysqli_commit($con);

如果您验证表 my_team 的内容,则可以看到插入的记录,如下所示-

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 Zeilen in der Menge (0,00 sec)

Online-Beispiel

面向对象风格的方式,此方法的语法为 $con-> autocommit();以下是对应面向对象风格的此函数示例;

//Verbindung herstellen
$con = new mysqli("localhost", "root", "password", "mydb");
//Das automatische Commit wird auf true gesetzt.
$con-> autocommit(FALSE);
//Die Datenbankzeile 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

Die Funktion mysqli_autocommit() kann auch als commit() aufgerufen werden, sie speichert das Ergebnis der Abfrage in der Datenbank:

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

Nach Ausführung des Programms, wenn Sie players Inhalt der Tabelle beobachten können, wie folgt hinzugefügt wurde:-

mysql> select * von players;
+------------+-----------+-------------+
| Vorname | Nachname | Land |
+------------+-----------+-------------+
| Shikhar | Dhawan | Indien |
| Jonathan | Trott | Südafrika |
+------------+-----------+-------------+
2 Zeilen in der Menge (0,00 sec)

Online-Beispiel

<?php
   $connection = mysqli_connect("localhost", "root", "password", "mydb");
   
   if (mysqli_connect_errno($connection)){
      echo "Verbindung zum MySQL konnte nicht hergestellt werden: " . 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 Sie die TabelletestInhalt, können Sie die eingefügten Zeilen sehen:-

mysql> select * von test;
+---------+------+
| Name | Alter |
+---------+------+
| Sharukh |   25 |
| Kalyan |   30 |
+---------+------+
2 Zeilen in der Menge (0,00 sec)

PHP MySQLi Referenzhandbuch