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