博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Zend_Session以数据库存session方法
阅读量:7014 次
发布时间:2019-06-28

本文共 1856 字,大约阅读时间需要 6 分钟。

hot3.png

Zend_Session以数据库存session方法
在Zend Framework中我们通过Zend_Session_SaveHandler_DbTable可以很方便的将Session的存储放到数据库中。我将简单介绍如何将Session配置到数据库中。
首先是创建sessions表,以MYSQL为例
-- -- 表的结构 `sessions` -- CREATE TABLE IF NOT EXISTS `sessions`
( `id` char(32) collate utf8_unicode_ci NOT NULL, 
`modified` int(10) NOT NULL, 
`lifetime` int(10) NOT NULL, 
`data` text collate utf8_unicode_ci NOT NULL, PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
接下来我们需要在Zend当中new一个Zend_Session_SaveHandler_DbTable,在那里加载合适呢?如果你使用的是Zend Framework1.8的话,可以在Bootstrap当中,通过application.ini来选定是否配置Zend_Session_SaveHandler_DbTable。如果是比较老的版本的话可直接写在入口文件index.php当中。下面我们就直接来配置它:
//-------------sessionDB--------------// require_once 'Zend/Db.php'; require_once 'Zend/Session.php'; require_once 'Zend/Session/Namespace.php'; require_once 'Zend/Session/SaveHandler/DbTable.php'; //通过Zend_Db工厂创建Db $dbAdapter = Zend_Db::factory('PDO_MYSQL',array(                     'host' => 'localhost'                     ,'dbname' => '你的数据库名称'                     ,'username' => '用户名'                     ,'password' => '密码'                     ,'charset' => 'UTF8'             )); //配置SessionDB字段 $dbColumn = array(     'db' => $dbAdapter     ,'name' => 'sessions'     ,'primary' => 'id'     ,'modifiedColumn' => 'modified'     ,'lifetimeColumn' => 'lifetime'     ,'dataColumn' => 'data' ); 
//new Zend_Session_SaveHandler_DbTable 
 

Zend_Session::setSaveHandler(new Zend_Session_SaveHandler_DbTable($dbColumn)); 

//启动会话 

Zend_Session::start(); 

$sess = new Zend_Session_Namespace('count'); 

if(isset($sess->count)) {
     $sess->count += 1; }else {
     $sess->count = 1; } echo $sess->count;
注意:
在使用Zend_Session::start()之前,比较将php.ini中的session.auto_start设置为0,否则的话将会报Zend_Session_Exception异常。
可以通过.htaccess中设置
php_value session.auto_start   0

转载于:https://my.oschina.net/kisshua/blog/53172

你可能感兴趣的文章
【面试题】数字翻转相关
查看>>
html5+css3+js开发APP实例教程1 -- 文字列表
查看>>
shell编程之正则表达式基础
查看>>
Android之图片
查看>>
Edittext 各种属性
查看>>
Cisco BGP后门路由解析
查看>>
NDK问题 之一: Javah 生成.h文件
查看>>
Kafka 源码剖析(一)
查看>>
cocos2d-x游戏例子01:是男人就坚持20秒(WIN32)
查看>>
初识html5 File API实现带有进度提示的文件上传
查看>>
使用 Chrome 浏览器调试 WebView 中的网页
查看>>
Linux下制作U盘系统启动盘的方法
查看>>
Torando 参数配置
查看>>
Mysql找回root密码
查看>>
一小时包教会 —— webpack 入门指南
查看>>
linux配置cvs
查看>>
JDK
查看>>
centos 用crt登陆后提示信息
查看>>
wireshark抓包图解-tcp三次握手四次挥手详解/
查看>>
从构建分布式秒杀系统聊聊分布式锁
查看>>