session_set_save_handler()用法

CREATE TABLE `session` (
  `id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,
  `sess_id` varchar(40) NOT NULL DEFAULT '',
  `data` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=138 DEFAULT CHARSET=utf8;


  <?php
 $con =mysql_connect("127.0.0.1","root" , "root");
        mysql_select_db("session");
	function open($save_path, $session_name) 
	{  echo 1;
		return(true);
	}
	function close() 
	{echo 5;
	  return(true);
	}
	function read($id) 
	{  echo 2;
	   if($result = mysql_query("SELECT * FROM session WHERE id='$id'"))
		 {
			if($row = mysql_fetch_row($result ))
			   {  return $row["data"]; }
		  }
	   else
		 {
		  return "";
		  }
	}
	function write($id, $sess_data) 
	{echo 3;
	  if($result = mysql_query("UPDATE session SET data='$sess_data' WHERE id='$id'"))
		 {
			return true;
		  }
	   else
		 {
		  return false;
		  }
	}
	function destroy($id) 
	{echo 4;
	 if($result = mysql_query("DELETE * FROM  session WHERE id='$id'"))
		 {
			return true;
		  }
	   else
		 {
		  return false;
		  }
	}
	/*********************************************
	* WARNING - You will need to implement some *
	* sort of garbage collection routine here.  *
	*********************************************/
	function gc($maxlifetime) 
	{
	  return true;
	}
	session_set_save_handler("open", "close", "read", "write", "destroy", "gc");
	session_start();
	// proceed to use sessions normally
?>


上方的代码,执行流程是:open( ) --->read( ) --->write( )--->close( )


现在我们的工作就已经完成了,只要你在需要在使用session的时候,把session_user_start.php。

包含进来,注意,这个文件一定要在文件的第一行包含,然后就想使用文件的session一样的方法使用就可以了。

这里总结一点:

下方代码是引用文件,然后赋值;可是当key是数字时,会发生很奇怪的事情。就是值丢失了。。。


报错信息如下:


<?php

	include "./session.php";
	
	//session_start();
	$_SESSION['1515'] = "4546";
	print_r($_SESSION);DIE;

下方为为了插入库,改过session.php文件

 <?php  
 $con =mysql_connect("127.0.0.1","root" , "root") or die("链接失败mysql_error()");  
        mysql_select_db("test");  
    function open($save_path, $session_name)   
    {  //echo $save_path,$session_name;
        return(true);  
    }  
    function close()   
    {
      return(true);  
    }  
    function read($id)   
    { //echo $id;
       if($result = mysql_query("SELECT * FROM session WHERE id='$id'"))  
         {  
            if($row = mysql_fetch_row($result ))  
               {  return $row["data"]; }  
          }  
       else  
         {  
          return "";  
          }  
    }  
    function write($id, $sess_data)   
    { //echo $id,$sess_data;
		$sql = "insert into session SET data='$sess_data',  sess_id='$id'";
		
		
      if($result = mysql_query($sql))  
         {  echo "ok";
            return true;  
          }  
       else  
         {  
          return false;  
          }  
		  print_r($result);die;
    }  
    function destroy($id)   
    {
     if($result = mysql_query("DELETE * FROM  session WHERE id='$id'"))  
         {  
            return true;  
          }  
       else  
         {  
          return false;  
          }  
    }  
    /********************************************* 
    * WARNING - You will need to implement some * 
    * sort of garbage collection routine here.  * 
    *********************************************/  
    function gc($maxlifetime)   
    {  
      return true;  
    }  
    session_set_save_handler("open", "close", "read", "write", "destroy", "gc");  
    session_start();  
    // proceed to use sessions normally  
?>  


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值