探討如何把session存入數(shù)據(jù)庫
更新時(shí)間:2013年06月07日 09:41:47 作者:
本篇文章是對(duì)如何把session存入數(shù)據(jù)庫的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
php的session默認(rèn)的情況下是采用的文件方式來保存的,我們?cè)趐hp的配制文件php.ini中可以看到這樣的一行,session.save_handler="files",這樣的意思就是采用文件來保存session 的,要采用數(shù)據(jù)庫來保存的話,我們需要修改成擁護(hù)模式,改稱 session.save_handler="use"就可以了,但是,這僅僅是說明我門沒有采用文件的方式存儲(chǔ)session,我們還要選擇數(shù)據(jù)庫和建立數(shù)據(jù)庫的表。
建立數(shù)據(jù)庫和數(shù)據(jù)庫的表結(jié)構(gòu),我們可以采用php可以使用的任何的數(shù)據(jù)庫,因?yàn)閜hp和mysql的結(jié)合最好,我就使用mysql來做事例,當(dāng)然根據(jù)你的需要可以改稱別的數(shù)據(jù)庫,同時(shí)因?yàn)閙ysql沒有事物的功能,這也比別的數(shù)據(jù)庫更快,然而保存session 書、一 不許要事物處理的,再者里我決的更好。
創(chuàng)建數(shù)據(jù)庫:
CREATE DATABASE 'session'; 創(chuàng)建表結(jié)構(gòu) 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
?>
現(xiàn)在我們的工作就已經(jīng)完成了,只要你在需要在使用session的時(shí)候,把session_user_start.php。包含進(jìn)來,
注意,這個(gè)文件一定要在文件的第一行包含,然后就想使用文件的session一樣的方法使用舊可以了。
建立數(shù)據(jù)庫和數(shù)據(jù)庫的表結(jié)構(gòu),我們可以采用php可以使用的任何的數(shù)據(jù)庫,因?yàn)閜hp和mysql的結(jié)合最好,我就使用mysql來做事例,當(dāng)然根據(jù)你的需要可以改稱別的數(shù)據(jù)庫,同時(shí)因?yàn)閙ysql沒有事物的功能,這也比別的數(shù)據(jù)庫更快,然而保存session 書、一 不許要事物處理的,再者里我決的更好。
創(chuàng)建數(shù)據(jù)庫:
復(fù)制代碼 代碼如下:
CREATE DATABASE 'session'; 創(chuàng)建表結(jié)構(gòu) CREATE TABLE 'session'( id CHAR(30) NOT NULL , 'user 'CHAR(30), data CHAR(3000) ,PARMIRY BY ('id') );
下面我們來編寫保存session的文件session_start.php
復(fù)制代碼 代碼如下:
<?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
?>
現(xiàn)在我們的工作就已經(jīng)完成了,只要你在需要在使用session的時(shí)候,把session_user_start.php。包含進(jìn)來,
注意,這個(gè)文件一定要在文件的第一行包含,然后就想使用文件的session一樣的方法使用舊可以了。
您可能感興趣的文章:
- php基于session實(shí)現(xiàn)數(shù)據(jù)庫交互的類實(shí)例
- php實(shí)現(xiàn)將Session寫入數(shù)據(jù)庫
- PHP將session信息存儲(chǔ)到數(shù)據(jù)庫的類實(shí)例
- PHP獨(dú)立Session數(shù)據(jù)庫存儲(chǔ)操作類分享
- php把session寫入數(shù)據(jù)庫示例
- Session保存到數(shù)據(jù)庫的php類分享
- PHP用mysql數(shù)據(jù)庫存儲(chǔ)session的代碼
- 使用數(shù)據(jù)庫保存session的方法
- SESSION存放在數(shù)據(jù)庫用法實(shí)例
相關(guān)文章
ThinkPHP like模糊查詢,like多匹配查詢,between查詢,in查詢,一般查詢書寫方法
ThinkPHP的數(shù)據(jù)庫條件查詢語句有字符串式,數(shù)組式書寫方法,字符串式即是原生式而數(shù)組式的查詢語句因書寫方式與特定字符的原因比較復(fù)雜,今天為大家講解一下ThinkPHP數(shù)組式查詢語句的書寫方法2018-09-09php 模擬POST|GET操作實(shí)現(xiàn)代碼
很早的時(shí)候,參加面試,需要使用php的函數(shù)模擬一個(gè)post訪問。盡管對(duì)php很熟悉,但是由于面試之前很長(zhǎng)時(shí)間沒有使用php語言,所以就沒有答上來。2010-07-07PHP實(shí)現(xiàn)獲取客戶端IP并獲取IP信息
這篇文章主要介紹了PHP實(shí)現(xiàn)獲取客戶端IP并獲取IP信息的方法示例,非常實(shí)用,有需要的小伙伴快來參考下吧。2015-03-03Php 構(gòu)造函數(shù)construct的前下劃線是雙的_
最近寫php的class時(shí),總是碰到function non object的錯(cuò)誤,知道是類沒有實(shí)例化,但就是不知道錯(cuò)誤在哪里。2009-12-12PHP實(shí)現(xiàn)word轉(zhuǎn)pdf的兩種方式(有用!)
最近遇到一個(gè)需求,將word文件轉(zhuǎn)換成pdf,輾轉(zhuǎn)了一上午終于搞定了,下面這篇文章主要給大家介紹了關(guān)于PHP實(shí)現(xiàn)word轉(zhuǎn)pdf的兩種方式,需要的朋友可以參考下2022-09-09