Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Транзакции #6

Open
vrtc opened this issue Jul 27, 2016 · 1 comment
Open

Транзакции #6

vrtc opened this issue Jul 27, 2016 · 1 comment

Comments

@vrtc
Copy link

vrtc commented Jul 27, 2016

Я бы посоветовал импорт обернуть в одну большую транзакцию

$this->db->autoCommit(false);
$this->db->begin_transaction();
...
$this->db->commit();

иначе при обнулении товаров или предварительной очистке бд , юзеры будут видеть пустой сайт или 404 ошибки, что не есть хорошо

но конечно разработчик opencart древний как мамонт и упорно не хочет добавлять поддержку транзакции .

в mysqli.php нужно будет добавить методы

    public function autoCommit($state)
    {
        $this->autocommit = $state;
        $this->link->autocommit($this->autocommit);
    }

    public function begin_transaction()
    {
        if(!$this->autocommit)
        $this->link->begin_transaction();
    }

    public function commit()
    {
        if(!$this->autocommit)
            $this->link->commit();
    }


    public function rollback(){
        if(!$this->autocommit)
            $this->link->rollback();
    }

    public function __destruct()
    {
        if(!$this->autocommit)
            $this->commit();
        $this->link->close();
    }

и тудаже в конструктор

$this->link->autocommit($this->autocommit);
@KirilLoveVE
Copy link
Owner

Спасибо за совет я постараюсь изучить этот вопрос и внедрить в следующих версиях

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants