php中session写入数据库的方法探讨

发布时间:2020-03-13编辑:脚本学堂
本文介绍下,在php编程中,将session写入数据库的方法,有需要的朋友,参考下吧。

php中,默认的情况下,session以文件方式来保存。
php的配置文件php.ini中有这样一行:
session.save_handler="files"
即表示采用文件来保存session。
如果要采用数据库来保存的话,需要将files模式修改为用户模式,即:
session.save_handler="use"

修改完配置文件,接下来就是建立数据库和数据库的表结构,可以采用php可以使用的任何的数据库,本文以mysql为例。

编辑推荐:php session保存入数据库的实现代码

创建数据库:
复制代码 代码示例:
CREATE DATABASE 'session';

创建表结构:
 

复制代码 代码示例:
CREATE TABLE 'session'( id CHAR(30) NOT NULL , 'user 'CHAR(30), data CHAR(3000) ,PARMIRY BY ('id') );

保存session的文件session_start.php:
 

复制代码 代码示例:
<?php
$con =mysql_connection("127.0.0.1","user" , "pass");
mysql_select_db("session");
function open($save_path, $session_name)
{
return(true);
}
function close()
{
return(true);
}
function read($id)
{
if($result = mysql_query("SELECT * FROM session WHERE id='$id'"))
{
if($row = mysql_felth_row($result ))
{ return $row["data"]; }
}
else
{
return "";
}
}
function write($id, $sess_data)
{
if($result = mysql_query("UPDATE session SET data='$sess_data' WHERE id='$id'"))
{
return true;
}
else
{
return false;
}
}
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
?>

使用方法,在需要将session保存进数据库的页面中,引入文件:session_user_start.php 即可。
注意,此文件一定要在文件的第一行。