1. Язык PHP
Транзакции
Использование транзакций в MySQL
Алексей Бованенко
2. Понятие транзакции
• Группа операций, рассматриваемая как одно целое
• Изменения в ходе транзакции доступны только потоку,
выполняющему данную транзакцию
3. ACID
• Atomicityиначе транзакция не будет принята должны быть
завершены,
Операции, входящие в транзакцию
• Consistency Операции, входящие в транзакцию должны быть
завершены, иначе данные вернутся в исходное состояние
• Isolation Изменения внесенныевнешнихнезаконченной
транзакции не отображаются во
в ходе
потоках
• Durability Принятые изменения должны сохраняться так, чтобы
была возможность их восстановления
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