PHP MySQLi Functions

Функція PHP mysqli_autocommit()

Матеріал представлений на сторінці за w3schools ресурсом.

Загальна інформація

Документація php mysqli autocommit.

mysqli::autocommit -- mysqli_autocommit Встановлює (вкл/викл) автоматичне виконання транзакцій запитів до БД.

Встановлений атрибут FALSE припиняє автоматичне виконання транзакцій. Значення TRUE виконує транзакції до БД або виконує запити, що очікують виконання.

Важливо! Функція не працює з таблицями MyISAM чи ISAM.

Синтаксис

Функція mysqli_autocommit() може бути виконана як в об'єктно-орієнтовному стилі програмування, так і в процедурному стилі програмування.

Наприклад, застосуємо скрипт в ООП:

$mysqli = new mysqli("host", "user", "pass", "DB");

/* автоматичне виконання SQL-запитів включене*/
$mysqli->autocommit(TRUE);

if ($result = $mysqli->query("SELECT @@autocommit")) {
    $row = $result->fetch_row();
    printf("Autocommit is %s\n", $row[0]);
    $result->free();
};

/* закриваємо зєднання */
$mysqli->close();

Або зразок процедурного стилю:

$link = mysqli_connect("host", "user", "pass", "DB");

/* автоматичне виконання SQL-запитів включене*/
mysqli_autocommit($link, TRUE);

if ($result = mysqli_query($link, "SELECT @@autocommit")) {
    $row = mysqli_fetch_row($result);
    printf("Autocommit is %s\n", $row[0]);
    mysqli_free_result($result);
}

/* закриваємо зєднання */
mysqli_close($link);

Функція повертає значення TRUE у випадку успішного виконання транзакції, та повертає значення FALSE у випадку помилки під час виконання роботи функції.



Розглянемо скрипт:
- З'єднуємось із БД;
- вимикаємо автоматичне виконання транзакцій до БД;
- виконуємо ряд запитів;
- виконуємо транзакцію запитів за допомогою mysqli_commit;
- закриваємо зєднання з БД.



<?php
$con=mysqli_connect("host","user","pass","db");

// встановлюємо autocommit off
// вимикаємо автоматичну передачу даних
mysqli_autocommit($con,FALSE);

// Вносимо деякі значення
mysqli_query($con,"INSERT INTO Persons (FirstName,LastName,Age)
VALUES ('Peter','Griffin',35)");
mysqli_query($con,"INSERT INTO Persons (FirstName,LastName,Age)
VALUES ('Glenn','Quagmire',33)");

// Виконуємо транзакцію
mysqli_commit($con);

// закриваємо з'єднання з базою даних
mysqli_close($con);
?>


Суттєво! Застосування mysqli_commit виконується в парі з mysqli_commit.

Переглянути функцію mysqli_commit().