| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 | <?phpnamespace KIF\Db;use KIF\Exception\ParamsException;use KIF\Db\MySQLi;use KIF\Core\Config;/** * 数据库事务类 * 主要是包装 MySQLite 的事务方法。供前端类、前端php响应页面调用。 * @author gaoxiaogang@gmail.com * */class Transaction {    /**     * 数据库实例     *     * @var KIF\Db\MySQLi     */    protected $db;    public function __construct($cluster_flag = 'default') {    	$appConfig = Config::getInstance()->current();    	$dbConfig = $appConfig['db'];    	    	if (!$dbConfig || !isset($dbConfig[$cluster_flag]) || !is_string($dbConfig[$cluster_flag])) {    		throw new ParamsException("load config error:{$dbConfig}");    	}           $this->db = new MySQLi($dbConfig[$cluster_flag]);    }    /**     * 开始事务     * @return false | string false:失败;string:成功返回事务标志     */    public function start() {    	return $this->db->startTransaction();    }    /**     * 提交事务     * @param string $strTransactionId     * @return Boolean     */    public function commit($strTransactionId) {    	return $this->db->commit($strTransactionId);    }    /**     * 回滚事务     * @param string $strTransactionId     * @return Boolean     */    public function rollback($strTransactionId) {        return $this->db->rollback($strTransactionId);    }    /**     *     * 开始使用主库。后续的所有读查询,都会被强制到主库     *     * @return String 返回一串标志,供$this->restore 方法使用,用于恢复上一个状态     */    public function beginUseMaster() {    	return $this->db->beginUseMaster();    }    /**     * 恢复采用 $strMasterStatusId 为句柄保存的上次的状态     *     * @param String $strMasterStatusId     * @return Boolean     *     */    public function restore($strMasterStatusId) {    	return $this->db->restore($strMasterStatusId);    }}
 |