English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
PHP MySQLi Manuale di Referenza
La funzione mysqli_commit() sottopone una transazione
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.
mysqli_commit($con, [$flags, $name]);
Numero | Parametri e descrizione |
---|---|
1 | con (obbligatorio) È un oggetto che rappresenta la connessione con il server MySQL. |
2 | flags (opzionale) Può essere uno dei seguenti costanti:
|
3 | name (opzionale) È un nome valore, quando specificato, viene eseguito con il formato COMMIT /* name */. |
La funzione mysqli_commit() restituisce un valore booleano, se l'operazione di commit è riuscita, allora ètrue,altrimentifalse.
Questa funzione è stata introdotta originariamente nella versione PHP 5 e è disponibile in tutte le versioni successive.
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)
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 )
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)
<?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)