xoops系统中:

---------------------------------------

 session_set_save_handler(array(&$sess_handler, 'open'), array(&$sess_handler, 'close'), array(&$sess_handler, 'read'), array(&$sess_handler, 'write'), array(&$sess_handler, 'destroy'), array(&$sess_handler, 'gc'));
 session_start();

---------------------------------------

 写session函数write是这么定义的:

---------------------------------------
function write($sess_id, $sess_data)
    {   
        $sess_id = $this->db->quoteString($sess_id);
        $sql = sprintf('UPDATE %s SET sess_updated = %u, sess_data = %s WHERE sess_id = %s', $this->db->prefix('session'), time(), $this->db->quoteString($sess_data), $sess_id);
        $this->db->queryF($sql);
        if ($this->db->getAffectedRows() != 1) {
            $sql = sprintf('INSERT INTO %s (sess_id, sess_updated, sess_ip, sess_data) VALUES (%s, %u, %s, %s)', $this->db->prefix('session'), $sess_id, time(), $this->db->quoteString($_SERVER['REMOTE_ADDR']), $this->db->quoteString($sess_data));
            return $this->db->queryF($sql);
        }
        return true;
    }
---------------------------------------
session_start();执行之后 write 函数就会被调用了,但是 write 函数中的参数值
是从哪里来的啊?????? 都是session在自动处理,session怎么知道数据表中设了哪些字段且每个字段各代表什么呢????????????