【发布时间】:2015-04-17 14:33:52
【问题描述】:
我在一个网站上工作,我们需要集群服务器以让超过 1 台计算机处理流量。 所以我需要将 php 会话(文件会话)转换为 db 来进行集群工作。
我有一个简单的登录文件: 检查是否发布用户 == 密码,如果 num 行 == 1:
$_SESSION['user']=$_POST['user'];
我的问题从这里开始,如何使用 session_set_save_handler 在我的数据库中写入这个 USER? 我需要改变什么让_write工作?
public function _write($id){
// Create time stamp
$data = time();
// Set query
$this->db->query('INSERT INTO sessions (id,user,data) VALUES (:id, :user, :data)');
// Bind data
$this->db->bind(':id', $id);
$this->db->bind(':user', $user); //how can i get login user?
$this->db->bind(':data', $data);
// Attempt Execution
// If successful
if($this->db->execute()){
// Return True
return true;
}
// Return False
return false;
}
数据库
CREATE TABLE IF NOT EXISTS `sessions` (
`id` varchar(32) NOT NULL,
`user` varchar(20),
`data` text,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
【问题讨论】:
-
到底发生了什么?什么错误?
-
您的代码中不存在 $user 变量。
-
我无法让登录用户保存在我的会话数据库中,我不知道如何将此登录用户名发送到我的函数
-
$this->db->bind(':user', $_SESSION['user']);
-
你为什么不:公共函数 _write($id, $user, $data) ?正如@Heru-Luin 所说,您缺少变量