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_commit()

PHP MySQLi Manuale di Referenza

La funzione mysqli_commit() sottopone una transazione

Definizione e uso

Il database MySQL ha una funzione chiamata commit automatico delle transazioni (se attivata), che salva automaticamente le modifiche apportate al database; se disattivata, è necessario salvare esplicitamente le modifiche.

mysqli_commit()La funzione salva la transazione corrente.

Sintassi

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

Parametro

NumeroParametri e descrizione
1

con (obbligatorio)

È un oggetto che rappresenta la connessione con il server MySQL.

2

flags (opzionale)

Può essere uno dei seguenti costanti:

  • MYSQLI_TRANS_COR_AND_CHAIN

  • MYSQLI_TRANS_COR_AND_NO_CHAIN

  • MYSQLI_TRANS_COR_RELEASE

  • MYSQLI_TRANS_COR_NO_RELEASE

3

name (opzionale)

È un nome valore, quando specificato, viene eseguito con il formato COMMIT /* name */.

Valore di ritorno

La funzione mysqli_commit() restituisce un valore booleano, se l'operazione di commit è riuscita, allora ètrue,altrimentifalse.

Versione PHP

Questa funzione è stata introdotta originariamente nella versione PHP 5 e è disponibile in tutte le versioni successive.

Esempio Online

Supponiamo di aver creato una tabella chiamata my_team nel database mydb, come segue-

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

Di seguito è riportato un esempio che dimostramysqli_commit()Funzione d'uso (stile procedurale)-

<?php
   //Stabilisci la connessione
   $con = mysqli_connect("localhost", "root", "password", "mydb");
   //Imposta l'autocommit su false
   mysqli_autocommit($con, False);
   //Inserisci il 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);
   mysqli_commit($con);
   //Chiudere la connessione
   mysqli_close($con);
?>

Output dei risultati

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

Se verifichi il contenuto della tabella my_team, puoi osservare i dati salvati 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

Il metodo in stile orientato agli oggetti ha la seguente sintassi$con->commit();Di seguito è riportato un esempio di questa funzione in stile orientato agli oggetti;

//Stabilisci la connessione
$con = new mysqli("localhost", "root", "password", "mydb");
//imposta automatico a true
$con->autocommit(FALSE);
//Inserisci il 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();
//Chiudere la connessione
$con -> close();
?>

Output dei risultati

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

Esempio Online

Guardiamo un altro esempio. In questo caso, abbiamo creato una tabella, disattivato l'opzione di submit automatico, inserito un record e salvato le modifiche. Dopo aver salvato, abbiamo inserito un altro record:

//Stabilisci la connessione
$con = mysqli_connect("localhost", "root", "password", "mydb");
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 il record nella tabella 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');")
//Chiudere la connessione
mysqli_close($con);
?>

poiché non abbiamo salvato la query di inserimento precedente, dopo aver eseguito il programma sopra, se si verifica players se si verifica il contenuto della tabella, allora si può vedere solo un record, come segue -

mysql> select * from players;
+------------+-----------+---------+
| NomePrimo | Cognome | Paese |
+------------+-----------+---------+
| Shikhar | Dhawan | India |
+------------+-----------+---------+
1 riga nel set (0.00 sec)

Esempio Online

<?php
   $connection = mysqli_connect("localhost", "root", "password", "mydb");
   
   if (mysqli_connect_errno($connection)){
      echo "Connessione MySQL fallita: " . 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, 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