. Использование транзакций в MySQL improved | Makarou.com - когда сайты превращаются в бизнес

Использование транзакций в MySQL improved

Использование транзакций в MySQLiДобрый вечер, дорогие друзья. Сегодня я хочу вам рассказать про замечательную вещь, которая существует в MySQLi. Эта вещь называется транзакции. Хотя если посмотреть в сторону старого расширения – MySQL, то mysql транзакции там тоже есть, но вот работать с ними нельзя. А вот в MySQLi это стало возможным.

Транзакции сами по себе это процессы, которые гарантируют что последовательность запросов к базе из вашего скрипта, либо выполниться полностью, либо не выполниться ни один запрос из этой последовательности. Для того чтобы использовать транзакции нужно чтобы формат базы данных был либо InnoDB, либо BDB.

Для работы с транзакциями в MySQLi, используются всего 3 функции, которые мы сейчас и разберем.

Первая функция — mysqli_autocommit, она как бы проверяет состояние MySQL сервера при работе с базой, с помощью транзакций.

Синтаксис этой функции выглядит вот так:


mysqli_autocommit($load,$mode);

Первый параметр – это идентификатор соединения с базой данных. Второй параметр – это булевское значение определяющее включен ли режим автоматического фиксирования. Для использования транзакций автоматическое фиксирование должно быть выключено. Для этого просто выполните функцию mysqli_autocommit – и в качестве второго значения передайте false. Далее нужно знать, что для записи любых изменений, которые проводились в таблицах, нужно фиксировать транзакции. Для этого в MySQLi используется следующая функция.

Вторая функция — mysqli_commit, она служит для фиксирования транзакций.

Синтаксис этой функции выглядит следующим образом:


mysqli_commit($load);

Функция принимает всего один параметр – это идентификатор соединения с базой данных.

И третья функция -  mysqli_rollback, она служит для отката последних изменений, произошедших после последнего вызова функции mysqli_commit.

Синтаксис этой функции выглядит вот так:


mysqli_rollback($load);

Функция принимает тоже всего один параметр – это идентификатор соединения с базой данных.

Вот небольшой пример, который показывает эти функции в работе:

$load= mysqli_connect("localhost","username","password","dbname", 3306);
mysqli_autocommit($load, false);
mysqli_query($load, "SELECT * FROM table1 WHERE id='1'");
mysqli_query($load, "INSERT INTO table2  VALUES ('1','2')");
mysqli_commit($load);
mysqli_query($load, "DELETE FROM table2 WHERE id='1'");
/*теперь запись удалена, но мы отменяем удаление*/
mysqli_rollback($load);

Вот и все что требуется знать для работы с транзакциями, все легко и просто. ;)

Постовой

А вы слышали про такую замечательную вещь как mysql представления, которая существует в Mysql?

php

Понравился пост? добавь его к себе в закладки:
Хочешь быть всегда в курсе обновлений блога? подписывайся через:
фото проституток новосибирска