-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtransaction.class.php
83 lines (74 loc) · 1.65 KB
/
transaction.class.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<?php
/**
* 数据库事务核心类
*
* @author 呼吸二氧化碳 <jonwang@myqee.com>
* @category MyQEE
* @package Module
* @subpackage Database
* @copyright Copyright (c) 2008-2013 myqee.com
* @license http://www.myqee.com/license.html
*/
abstract class Module_Database_Transaction
{
/**
* 唯一ID
* @var $id string
*/
protected $id;
/**
* 数据库驱动
* @var Database_Driver_MySQLI
*/
protected $db_driver;
public function __construct($db_driver)
{
$this->db_driver = $db_driver;
}
/**
* 开启事务
* @return boolean 是否开启成功
* @throws Exception
*/
abstract public function start();
/**
* 提交事务,支持子事务
*
* @return Boolean true:成功;false:失败
*/
abstract public function commit();
/**
* 撤消事务,支持子事务
*
* @return Bollean true:成功;false:失败
*/
abstract public function rollback();
/**
* 是否还在事务中
* @return boolean true=是,false=否
*/
abstract public function is_root();
/**
* 事务查询
* @param string $sql
*/
protected function _query($sql)
{
try
{
if ( $this->db_driver->query($sql, null, true) )
{
$status = true;
}
else
{
$status = false;
}
}
catch ( Exception $e )
{
$status = false;
}
return $status;
}
}