Función PHP mysqli_autocommit ()

Definición y uso

La base de datos MySQL tiene una función denominada auto-confirmación si la activa, los cambios realizados en las bases de datos se guardan automáticamente y, si la desactiva, debe guardar los cambios explícitamente. losmysqli_autocommit() se utiliza para activar / desactivar la función de confirmación automática.

Esta función acepta un valor booleano como parámetro. Si pasa verdadero a esta función, la función de confirmación automática se activará y si pasa falso, desactivará la función de confirmación automática.

Sintaxis

mysqli_autocommit($con, $mode);

Parámetros

No Señor Descripción de parámetros
1

con(Mandatory)

Este es un objeto que representa una conexión a MySQL Server.

2

mode(Mandatory)

Este es un valor booleano que representa si el modo de confirmación automática debe activarse o no.

Valores devueltos

La función PHP mysqli_autocommit () devuelve un valor booleano que es verdadero en caso de éxito y falso en caso de error.

Versión PHP

Esta función se introdujo por primera vez en PHP Versión 5 y funciona en todas las versiones posteriores.

Ejemplo

Supongamos que hemos creado una tabla llamada my_team en la base de datos mydb, de la siguiente manera:

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

El siguiente ejemplo demuestra el uso de la función mysqli_autocommit () (en estilo procedimental):

<?php
   //Creating a connection
   $con = mysqli_connect("localhost", "root", "password", "mydb");

   //Setting auto commit to false
   mysqli_autocommit($con, False);

   //Inserting a records into the my_team table
   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')");

   //Verifying the contents of the table
   $result = mysqli_query($con, "SELECT * FROM my_team");
   print_r($result);

   //Closing the connection
   mysqli_close($con);
?>

Esto producirá el siguiente resultado:

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

Como hemos desactivado la opción de confirmación automática en el ejemplo anterior, los registros agregados no se guardarán en la base de datos y, si verifica el contenido de la tabla en MySQL, estará vacío como se muestra a continuación $ menos;

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

Para guardar los cambios en la base de datos, debe confirmar los cambios al final del programa usando la función mysqli_commit () como

mysqli_commit($con);

Si usted y verifica el contenido de la tabla my_team, puede ver los registros insertados como se muestra a continuación:

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 rows in set (0.00 sec)

Ejemplo

La sintaxis de este método en estilo orientado a objetos es $ con-> autocommit () . A continuación se muestra un ejemplo de esta función en el modo orientado a objetos $ minus;

//Creating a connection
$con = new mysqli("localhost", "root", "password", "mydb");

//Setting auto commit to true
$con->autocommit(FALSE);

//Inserting a records into the my_team table
$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')");

//Verifying the contents of the table
$result = $con->query( "SELECT * FROM my_team");
print_r($result);

//Saving the results
$con->commit();

//Closing the connection
$con -> close();
?>

Esto producirá el siguiente resultado:

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

Ejemplo

La función mysqli_autocommit () también funciona como commit () al invocar, guarda los resultados de las consultas en espera en la base de datos -

//Creating a connection
$con = mysqli_connect("localhost", "root", "password", "mydb");

//creating a table
mysqli_query($con, "Create table players (First_Name VARCHAR(255), Last_Name VARCHAR(255), Country VARCHAR(255))");

//Setting auto commit to false
mysqli_autocommit($con, False);

//Inserting a records into the my_team table
mysqli_query($con, "insert into players values('Shikhar', 'Dhawan', 'India')");
mysqli_query($con, "insert into players values('Jonathan', 'Trott', 'SouthAfrica')");

mysqli_autocommit($con, TRUE);

//Closing the connection
mysqli_close($con);
?>

Después de ejecutar el programa, si verifica el contenido de la tabla de jugadores , puede observar los registros agregados, como se muestra a continuación:

mysql> select * from players;
+------------+-----------+-------------+
| First_Name | Last_Name | Country     |
+------------+-----------+-------------+
| Shikhar    | Dhawan    | India       |
| Jonathan   | Trott     | SouthAfrica |
+------------+-----------+-------------+
2 rows in set (0.00 sec)

Ejemplo

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

Después de ejecutar el programa anterior, si verifica el contenido de la tabla de prueba , puede ver los registros insertados como:

mysql> select * from test;
+---------+------+
| Name    | Age  |
+---------+------+
| Sharukh |   25 |
| Kalyan  |   30 |
+---------+------+
2 rows in set (0.00 sec)