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

Tutorial di base PHP

Tutorial avanzato PHP

PHP & MySQL

Manuale di riferimento PHP

Uso e esempio della funzione PHP mysqli_autocommit()

PHP MySQLi Manuale di Referenza

La funzione mysqli_autocommit() apre o chiude il modello di transazione di submit automatico della connessione del database corrente

Definizione e uso

Il database MySQL ha una funzionalità chiamata submit automatico. Se la attivi, le modifiche fatte nel database verranno salvate automaticamente; se la disattivi, è necessario salvare esplicitamente le modifiche.mysqli_autocommit() Apri o chiudi il modello di transazione di submit automatico della connessione del database corrente. Per confermare lo stato di submit automatico della transazione della connessione corrente, esegui questa richiesta SQL SELECT @@autocommit .

Questa funzione accetta valori booleani come parametri. Se vienetrueSe passinga a questa funzione, verrà abilitato il modello di transazione di submit automatico; se viene trasmessofalse,则将关闭自动提交事务模式。

语法

mysqli_autocommit($con, $mode);

参数

序号参数及说明
1

con(必需)

这是一个表示与MySQL Server的连接的对象。

2

mode(必需)

这是一个布尔值,表示是否应打开自动提交事务模式。

返回值

PHP mysqli_autocommit()函数返回一个布尔值,成功时为true,失败时为false.

注释和提示

 这个方法不会在不支持事务处理的表单查询中生效,如MyISAM或 ISAM。

PHP版本

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

Esempio Online

假设我们在数据库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
   //stabilisci la connessione
   $con = mysqli_connect("localhost", "root", "password", "mydb");
   //imposta l'autocommit su false
   mysqli_autocommit($con, False);
   //inserisci i record nella tabella 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')");
   //verifica il contenuto della tabella
   $result = mysqli_query($con, "SELECT * FROM my_team");
   print_r($result);
   //chiudi la connessione
   mysqli_close($con);
?>

output risultati

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

Poiché abbiamo disattivato l'opzione di transazione automatica nell'esempio precedente, l'aggiunta dei record non verrà salvata nel database, e se verifichi il contenuto della tabella in MySQL, la tabella sarà vuota, come segue;

mysql> select * from my_team;
Set vuoto (0.00 sec)

Per salvare le modifiche nel database, è necessario utilizzare la funzione mysqli_commit() alla fine del programma per confermare le modifiche come

mysqli_commit($con);

Se verifichi il contenuto della tabella my_team, vedrai le registrazioni inserite, come segue-

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

Esempio Online

Nello stile orientato agli oggetti, la sintassi di questo metodo è $con-> autocommit()Di seguito è riportato un esempio di questa funzione nello stile orientato agli oggetti;

//stabilisci la connessione
$con = new mysqli("localhost", "root", "password", "mydb");
//imposta automaticamente la transazione su true
$con->autocommit(FALSE);
//inserisci i record nella tabella 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')");
//verifica il contenuto della tabella
$result = $con->query("SELECT * FROM my_team");
print_r($result);
//salva i risultati
$con->commit();
//chiudi la connessione
$con -> close();
?>

output risultati

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

Esempio Online

La funzione mysqli_autocommit() può anche essere utilizzata come commit() quando chiamata, salvando i risultati della query nel database:

//stabilisci la connessione
$con = mysqli_connect("localhost", "root", "password", "mydb");
//crea la tabella
mysqli_query($con, "Create table players (First_Name VARCHAR(255), Last_Name VARCHAR(255), Country VARCHAR(255))");
//imposta l'autocommit su false
mysqli_autocommit($con, False);
//inserisci i record nella tabella 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);
//chiudi la connessione
mysqli_close($con);
?>

Dopo aver eseguito il programma, se si verifica players se si verifica il contenuto della tabella, allora si può osservare il record aggiunto, come segue -

mysql> select * from players;
+------------+-----------+-------------+
| NomePrimo | Cognome | Paese |
+------------+-----------+-------------+
| Shikhar | Dhawan | India |
| Jonathan | Trott | Sudafrica |
+------------+-----------+-------------+
2 righe nel set (0.00 sec)

Esempio Online

<?php
   $connection = mysqli_connect("localhost", "root", "password", "mydb");
   
   if (mysqli_connect_errno($connection)){
      echo "Impossibile connettersi a 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);
?>

Dopo aver eseguito il programma sopra, se si verifica la tabellatestse si verifica il contenuto della tabella, allora si può vedere che il record inserito è -

mysql> select * from test;
+---------+------+
| Nome | Età |
+---------+------+
| Sharukh | 25 |
| Kalyan | 30 |
+---------+------+
2 righe nel set (0.00 sec)

PHP MySQLi Manuale di Referenza