我正在努力将PHP会话变量存储到数据库中,并且存在一些问题。我想知道你们是否可以给我一个更好的解决方案,或者如果我的理解有任何不妥之处请告诉我。谢谢。
首先,我将用户输入存储在PHP会话变量中。我无法将此会话数据插入数据库,因为我需要等待另一个用户输入(此输入将与会话数据同时插入数据库)。会话有一个时间限制(60秒)。我需要一个临时存储会话数据的地方。如果会话结束,数据就会消失。
我认为存储会话数据的地方将是对象。也许创建一个类来存储会话数据。当用户提供另一个输入时,从该对象中提取数据并插入数据库。我没有在PHP中使用任何面向对象的概念,所以我想知道这个过程是否会起作用。
非常感谢你。
答案 0 :(得分:3)
我处理会话的方式是使用单例模式:
class Session {
private static $_instance;
private $id;
private $data;
private function __clone() {}
private function __construct() {
session_start();
$this->id = session_id();
$this->data =& $_SESSION;
}
public static function open() {
if ( ! (self::$_instance instanceof self)) {
self::$_instance = new self();
}
return self::$_instance;
}
public function __set($name, $value) {
$this->data[$name] = $value;
}
public function __get($name) {
return isset($this->data[$name]) ? $this->data[$name] : null;
}
}
这样您的会话数据就会存储在 $ data 变量中,并且可以通过重载来访问。