2个同步AJAX上的CodeIgniter $ this-> session-> set_userdata()

时间:2015-01-02 00:16:59

标签: php mysql ajax codeigniter session

我在codeIgniter上有类似的AJAX请求,所有会话更新都是这样的:

function ajax1($value)
{
    $this->session->set_userdata('foo', $value);
}

function ajax2($value)
{
    $this->session->set_userdata('bar', $value);
}

但有时因为MySQL并发,一个变量或另一个变量没有更新,我想是因为如果从数据库中抓取,一个方法会用旧值覆盖另一个方法的新值。

我不能同时更新2个会话,因为它们完全不同,我不知道会调用哪些会话,因为页面是动态的,可能有一个或几个方法调用。

过去有人遇到过这种情况并有办法解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我认为这个问题已在最新版本的codeIgniter中得到修复,但是如果您仍在使用旧版本,请尝试将system / libraries / Session.php替换为新版本,或者您可以直接覆盖会话库遵循:

应用/库/ MY_Session.php

class MY_Session extends CI_Session
{
    function sess_update()
    {
        if (!$this->CI->input->is_ajax_request())
            return parent::sess_update();
    }

}