SlideShare a Scribd company logo
1 of 8
Download to read offline
Язык PHP


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




                                 Алексей Бованенко
Понятие транзакции


•   Группа операций, рассматриваемая как одно целое

•   Изменения в ходе транзакции доступны только потоку,
    выполняющему данную транзакцию
ACID
• Atomicityиначе транзакция не будет принята должны быть
  завершены,
             Операции, входящие в транзакцию



• Consistency Операции, входящие в транзакцию должны быть
  завершены, иначе данные вернутся в исходное состояние

• Isolation Изменения внесенныевнешнихнезаконченной
  транзакции не отображаются во
                                 в ходе
                                        потоках

• Durability Принятые изменения должны сохраняться так, чтобы
  была возможность их восстановления
Использование транзакции


• START TRANSACTION;
•   ...

• COMMIT / ROLLBACK;
mysqli

• $mysqli->autocommit(FALSE);
•   ...

• $mysqli->commit() / $mysqli->rollback();
• $mysqli->autocommit(TRUE);
Пример использования (mysql)
•   mysql_query("START TRANSACTION");


•   for($i=0;$i<count($arr);++$i){
    $query="UPDATE testtable SET phone='{$data['newphone']}' WHERE
    name='{$arr[$i]}' AND phone='{$data['oldphone']}'";
    mysql_query($query);
    $count+=mysql_affected_rows();
    }

•   mysql_query("COMMIT");
Пример использования (mysqli)

•   $this->link->autocommit(FALSE);
    $query="UPDATE testtable SET phone=? WHERE name=? AND phone=?";
    $stmt=$this->link->stmt_init();
    $stmt->prepare($query);

•   for($i=0;$i<count($arr);++$i){
    $stmt->bind_param("sss",$data['newphone'],$arr[$i],$data['oldphone']);
    $stmt->execute();
    $count+=$stmt->affected_rows;
    }
    $stmt->close();


•   $this->link->commit();
Конец




    Спасибо за внимание

               e-mail: a.bovanenko@gmail.com

More Related Content

Viewers also liked

All Together - презентация Станислава Каргина
All Together - презентация Станислава КаргинаAll Together - презентация Станислава Каргина
All Together - презентация Станислава КаргинаСтанислав Каргин
 
Презентация Вячеслава Федорова на международной выставке-конференции RGWeek 2...
Презентация Вячеслава Федорова на международной выставке-конференции RGWeek 2...Презентация Вячеслава Федорова на международной выставке-конференции RGWeek 2...
Презентация Вячеслава Федорова на международной выставке-конференции RGWeek 2...Betting Business Russia
 
Развитие бизнеса
Развитие бизнесаРазвитие бизнеса
Развитие бизнесаIvan Smirnov
 
User retention // Философия отношений с пользователями
User retention // Философия отношений с пользователямиUser retention // Философия отношений с пользователями
User retention // Философия отношений с пользователямиExpertSender
 
выбор коммерческого банка_презен
выбор коммерческого банка_презенвыбор коммерческого банка_презен
выбор коммерческого банка_презенVladimir Burdaev
 
выбор банка вариант3
выбор банка вариант3выбор банка вариант3
выбор банка вариант3Vladimir Burdaev
 
Fitch Ratings. Обзор банковского сектора Украины, октябрь 2012
Fitch Ratings. Обзор банковского сектора Украины, октябрь 2012Fitch Ratings. Обзор банковского сектора Украины, октябрь 2012
Fitch Ratings. Обзор банковского сектора Украины, октябрь 2012Sergey Nagornyuk
 
Сергей Долгов на SMDAY2013. Продажи через социальные медиа с малым бюджетом: ...
Сергей Долгов на SMDAY2013. Продажи через социальные медиа с малым бюджетом: ...Сергей Долгов на SMDAY2013. Продажи через социальные медиа с малым бюджетом: ...
Сергей Долгов на SMDAY2013. Продажи через социальные медиа с малым бюджетом: ...Evgeni
 
Bank presentation-010912
Bank presentation-010912Bank presentation-010912
Bank presentation-010912Andrey Shubin
 
Интервью изданию "Финансовый директор"
Интервью изданию "Финансовый директор"Интервью изданию "Финансовый директор"
Интервью изданию "Финансовый директор"German Kharchenko
 
Исаев Р.А. Банковский менеджмент и бизнес-инжиниринг 2-е издание 2013 (Глава 1)
Исаев Р.А. Банковский менеджмент и бизнес-инжиниринг 2-е издание 2013 (Глава 1)Исаев Р.А. Банковский менеджмент и бизнес-инжиниринг 2-е издание 2013 (Глава 1)
Исаев Р.А. Банковский менеджмент и бизнес-инжиниринг 2-е издание 2013 (Глава 1)Roman Isaev
 
Развивая розничный бизнес...
Развивая розничный бизнес...Развивая розничный бизнес...
Развивая розничный бизнес...softlab
 
матрос банк михайловский
матрос банк михайловскийматрос банк михайловский
матрос банк михайловскийFinancialStudio
 
Operation Mgmt
Operation MgmtOperation Mgmt
Operation Mgmtpipita4ka
 
Consenta pr 20121027
Consenta pr 20121027Consenta pr 20121027
Consenta pr 20121027Andrey Shubin
 
Яблоновский Gfk
Яблоновский GfkЯблоновский Gfk
Яблоновский GfkFinancialStudio
 

Viewers also liked (20)

All Together - презентация Станислава Каргина
All Together - презентация Станислава КаргинаAll Together - презентация Станислава Каргина
All Together - презентация Станислава Каргина
 
Презентация Вячеслава Федорова на международной выставке-конференции RGWeek 2...
Презентация Вячеслава Федорова на международной выставке-конференции RGWeek 2...Презентация Вячеслава Федорова на международной выставке-конференции RGWeek 2...
Презентация Вячеслава Федорова на международной выставке-конференции RGWeek 2...
 
Clr case crackers-дина
Clr case crackers-динаClr case crackers-дина
Clr case crackers-дина
 
Развитие бизнеса
Развитие бизнесаРазвитие бизнеса
Развитие бизнеса
 
бано
банобано
бано
 
User retention // Философия отношений с пользователями
User retention // Философия отношений с пользователямиUser retention // Философия отношений с пользователями
User retention // Философия отношений с пользователями
 
выбор коммерческого банка_презен
выбор коммерческого банка_презенвыбор коммерческого банка_презен
выбор коммерческого банка_презен
 
выбор банка вариант3
выбор банка вариант3выбор банка вариант3
выбор банка вариант3
 
Дойче Банке
Дойче БанкеДойче Банке
Дойче Банке
 
Fitch Ratings. Обзор банковского сектора Украины, октябрь 2012
Fitch Ratings. Обзор банковского сектора Украины, октябрь 2012Fitch Ratings. Обзор банковского сектора Украины, октябрь 2012
Fitch Ratings. Обзор банковского сектора Украины, октябрь 2012
 
Сергей Долгов на SMDAY2013. Продажи через социальные медиа с малым бюджетом: ...
Сергей Долгов на SMDAY2013. Продажи через социальные медиа с малым бюджетом: ...Сергей Долгов на SMDAY2013. Продажи через социальные медиа с малым бюджетом: ...
Сергей Долгов на SMDAY2013. Продажи через социальные медиа с малым бюджетом: ...
 
Bank presentation-010912
Bank presentation-010912Bank presentation-010912
Bank presentation-010912
 
Интервью изданию "Финансовый директор"
Интервью изданию "Финансовый директор"Интервью изданию "Финансовый директор"
Интервью изданию "Финансовый директор"
 
Исаев Р.А. Банковский менеджмент и бизнес-инжиниринг 2-е издание 2013 (Глава 1)
Исаев Р.А. Банковский менеджмент и бизнес-инжиниринг 2-е издание 2013 (Глава 1)Исаев Р.А. Банковский менеджмент и бизнес-инжиниринг 2-е издание 2013 (Глава 1)
Исаев Р.А. Банковский менеджмент и бизнес-инжиниринг 2-е издание 2013 (Глава 1)
 
Развивая розничный бизнес...
Развивая розничный бизнес...Развивая розничный бизнес...
Развивая розничный бизнес...
 
матрос банк михайловский
матрос банк михайловскийматрос банк михайловский
матрос банк михайловский
 
Operation Mgmt
Operation MgmtOperation Mgmt
Operation Mgmt
 
Consenta pr 20121027
Consenta pr 20121027Consenta pr 20121027
Consenta pr 20121027
 
Business Model Check
Business Model CheckBusiness Model Check
Business Model Check
 
Яблоновский Gfk
Яблоновский GfkЯблоновский Gfk
Яблоновский Gfk
 

Similar to transaction. php

Транзакции и блокировки в MySql. Теория и практика
Транзакции и блокировки в MySql. Теория и практикаТранзакции и блокировки в MySql. Теория и практика
Транзакции и блокировки в MySql. Теория и практикаNikolay Gondin
 
Система обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на GroovyСистема обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на GroovyRegn
 
Базы данных лекция №9
Базы данных лекция №9Базы данных лекция №9
Базы данных лекция №9Vitaliy Pak
 
Длинная транзакция или когда размер имеет значение / Михаил Балаян (Odin — In...
Длинная транзакция или когда размер имеет значение / Михаил Балаян (Odin — In...Длинная транзакция или когда размер имеет значение / Михаил Балаян (Odin — In...
Длинная транзакция или когда размер имеет значение / Михаил Балаян (Odin — In...Ontico
 
RESTful API: Best practices, versioning, design documentation
RESTful API: Best practices, versioning, design documentationRESTful API: Best practices, versioning, design documentation
RESTful API: Best practices, versioning, design documentationMikhail Shcherbakov
 
Мультитенанстность в Exchange
Мультитенанстность в ExchangeМультитенанстность в Exchange
Мультитенанстность в ExchangeUC2
 
Что нового в SQL Server 2014
Что нового в SQL Server 2014Что нового в SQL Server 2014
Что нового в SQL Server 2014Andrey Korshikov
 

Similar to transaction. php (9)

Транзакции и блокировки в MySql. Теория и практика
Транзакции и блокировки в MySql. Теория и практикаТранзакции и блокировки в MySql. Теория и практика
Транзакции и блокировки в MySql. Теория и практика
 
Система обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на GroovyСистема обработки бизнес-логики server-side приложения на Groovy
Система обработки бизнес-логики server-side приложения на Groovy
 
Coding like a sex
Coding like a sexCoding like a sex
Coding like a sex
 
Управление данными (транзакции)
Управление данными (транзакции)Управление данными (транзакции)
Управление данными (транзакции)
 
Базы данных лекция №9
Базы данных лекция №9Базы данных лекция №9
Базы данных лекция №9
 
Длинная транзакция или когда размер имеет значение / Михаил Балаян (Odin — In...
Длинная транзакция или когда размер имеет значение / Михаил Балаян (Odin — In...Длинная транзакция или когда размер имеет значение / Михаил Балаян (Odin — In...
Длинная транзакция или когда размер имеет значение / Михаил Балаян (Odin — In...
 
RESTful API: Best practices, versioning, design documentation
RESTful API: Best practices, versioning, design documentationRESTful API: Best practices, versioning, design documentation
RESTful API: Best practices, versioning, design documentation
 
Мультитенанстность в Exchange
Мультитенанстность в ExchangeМультитенанстность в Exchange
Мультитенанстность в Exchange
 
Что нового в SQL Server 2014
Что нового в SQL Server 2014Что нового в SQL Server 2014
Что нового в SQL Server 2014
 

More from Alexey Bovanenko (20)

Python sqlite3
Python sqlite3Python sqlite3
Python sqlite3
 
Python. re
Python. rePython. re
Python. re
 
python dict
python dictpython dict
python dict
 
Python. Строки
Python. СтрокиPython. Строки
Python. Строки
 
Python. Введение
Python. ВведениеPython. Введение
Python. Введение
 
Nio java
Nio javaNio java
Nio java
 
Конвертация строковых данных в числовые
Конвертация строковых данных в числовыеКонвертация строковых данных в числовые
Конвертация строковых данных в числовые
 
Assert c
Assert cAssert c
Assert c
 
Обработка символов в языке C
Обработка символов в языке CОбработка символов в языке C
Обработка символов в языке C
 
System c
System cSystem c
System c
 
Javascript functions
Javascript functionsJavascript functions
Javascript functions
 
Javascript String object
Javascript String objectJavascript String object
Javascript String object
 
File. Java
File. JavaFile. Java
File. Java
 
ZIP, GZIP Streams in java
ZIP, GZIP Streams in javaZIP, GZIP Streams in java
ZIP, GZIP Streams in java
 
Конструктор копирования
Конструктор копированияКонструктор копирования
Конструктор копирования
 
Tempale Intro
Tempale IntroTempale Intro
Tempale Intro
 
cookie. support by php
cookie. support by phpcookie. support by php
cookie. support by php
 
php sessions
php sessionsphp sessions
php sessions
 
Java IO. Streams
Java IO. StreamsJava IO. Streams
Java IO. Streams
 
Regular Expressions
Regular ExpressionsRegular Expressions
Regular Expressions
 

transaction. php

  • 1. Язык PHP Транзакции Использование транзакций в MySQL Алексей Бованенко
  • 2. Понятие транзакции • Группа операций, рассматриваемая как одно целое • Изменения в ходе транзакции доступны только потоку, выполняющему данную транзакцию
  • 3. ACID • Atomicityиначе транзакция не будет принята должны быть завершены, Операции, входящие в транзакцию • Consistency Операции, входящие в транзакцию должны быть завершены, иначе данные вернутся в исходное состояние • Isolation Изменения внесенныевнешнихнезаконченной транзакции не отображаются во в ходе потоках • Durability Принятые изменения должны сохраняться так, чтобы была возможность их восстановления
  • 4. Использование транзакции • START TRANSACTION; • ... • COMMIT / ROLLBACK;
  • 5. mysqli • $mysqli->autocommit(FALSE); • ... • $mysqli->commit() / $mysqli->rollback(); • $mysqli->autocommit(TRUE);
  • 6. Пример использования (mysql) • mysql_query("START TRANSACTION"); • for($i=0;$i<count($arr);++$i){ $query="UPDATE testtable SET phone='{$data['newphone']}' WHERE name='{$arr[$i]}' AND phone='{$data['oldphone']}'"; mysql_query($query); $count+=mysql_affected_rows(); } • mysql_query("COMMIT");
  • 7. Пример использования (mysqli) • $this->link->autocommit(FALSE); $query="UPDATE testtable SET phone=? WHERE name=? AND phone=?"; $stmt=$this->link->stmt_init(); $stmt->prepare($query); • for($i=0;$i<count($arr);++$i){ $stmt->bind_param("sss",$data['newphone'],$arr[$i],$data['oldphone']); $stmt->execute(); $count+=$stmt->affected_rows; } $stmt->close(); • $this->link->commit();
  • 8. Конец Спасибо за внимание e-mail: a.bovanenko@gmail.com