transaction. php

1,556 views

Published on

transaction support by php

Published in: Education, Technology, Real Estate
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,556
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

transaction. php

  1. 1. Язык PHP Транзакции Использование транзакций в MySQL Алексей Бованенко
  2. 2. Понятие транзакции • Группа операций, рассматриваемая как одно целое • Изменения в ходе транзакции доступны только потоку, выполняющему данную транзакцию
  3. 3. ACID • Atomicityиначе транзакция не будет принята должны быть завершены, Операции, входящие в транзакцию • Consistency Операции, входящие в транзакцию должны быть завершены, иначе данные вернутся в исходное состояние • Isolation Изменения внесенныевнешнихнезаконченной транзакции не отображаются во в ходе потоках • Durability Принятые изменения должны сохраняться так, чтобы была возможность их восстановления
  4. 4. Использование транзакции • START TRANSACTION; • ... • COMMIT / ROLLBACK;
  5. 5. mysqli • $mysqli->autocommit(FALSE); • ... • $mysqli->commit() / $mysqli->rollback(); • $mysqli->autocommit(TRUE);
  6. 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. 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. 8. Конец Спасибо за внимание e-mail: a.bovanenko@gmail.com

×