php把session写入数据库示例

  次阅读 来源:互联网(转载协议) 2016-03-01 13:54 我要评论(0)

这篇文章主要介绍了php把session写入数据库示例,需要的朋友可以参考下

代码如下:

<?php

class session_handler {

protected $maxlifetime = null;

protected $dbHandle = null;

public $config = null;

public static function init($args) {

return new self($args);

}

public function __construct($args) {

$this->config = $args;

$this->maxlifetime = get_cfg_var("session.gc_maxlifetime");

session_set_save_handler(

array($this, "open"),

array($this, "close"),

array($this, "read"),

array($this, "write"),

array($this, "destroy"),

array($this, "gc"));

}

public function open() {

$this->link = mysqli_connect(

$this->config['host'],

$this->config['user'],

$this->config['password'],

$this->config['database']);

mysqli_set_charset($this->link, "utf8");

$sql = 'CREATE TABLE IF NOT EXISTS `%s` (

`session_id` varchar(255) NOT NULL,

`session_data` text,

`session_expires` char(10) NOT NULL,

PRIMARY KEY (`session_id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;';

$sql = sprintf($sql, $this->config['table']);

mysqli_query($this->link, $sql);

return true;

}

public function close() {

return true;

}

public function read($session_id) {

if(empty($session_id)) return null;

$sql = 'SELECT `session_data` AS `data` FROM `%s` WHERE `session_id` = "%s" AND `session_expires` > "%u"';

$sql = sprintf($sql,

mysqli_real_escape_string($this->link, $this->config['table']),

mysqli_real_escape_string($this->link, $session_id),

time());

$result = mysqli_query($this->link, $sql);

$row = mysqli_fetch_assoc($result);

return $row['data'];

}

public function write($session_id, $session_data) {

if(empty($session_id)) return null;

$newExpires = time() + $this->maxlifetime;

$sql = 'REPLACE INTO `%s` SET `session_id` = "%s", `session_data` = "%s", `session_expires` = "%u"';

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 全球陷入"区块链狂热"潮,大规模应用还需等待

    全球陷入"区块链狂热"潮,大规模应用还需等待

  • 马云的新零售?张近东的智慧零售?抑或是刘强东的第四次零售革命?

    马云的新零售?张近东的智慧零售?抑或是刘强东的第四次零售革命?

  • 区块链最近太火,但A股多家公司明确表态不考虑涉足

    区块链最近太火,但A股多家公司明确表态不考虑涉足

  • 汤晓鸥:人工智能的中国式文艺复兴

    汤晓鸥:人工智能的中国式文艺复兴

网友点评网友点评
阅读推荐阅读推荐

算法 任何一个入门的软件开发人员都会听到这句话:算法是软件的灵魂!近年来大火的机器学习即是在算法在人工智能上的集中体现。今日头条通...

据《日本经济新闻》报道,日本东京大学教授稻叶雅幸等人开发出再现日本人骨骼肌肉构造的机器人。机器人各部位的肌肉和骨骼长度与日本人的平...

以奥黛丽-赫本为原型打造的人形机器人索菲娅首次拜访了印度。索菲娅是世界上首位获得公民身份的机器人,她在12月30日出现在了印度理工学院...

在查获现场,代售点电脑旁的一台机器人通过敲击电脑键盘抢票。 广州日报惠州讯 (全媒体记者秦仲阳 通讯员张中铃摄影报道)2018年春运售票已...