探討如何把session存入數(shù)據(jù)庫
更新時間:2013年06月07日 09:41:47 作者:
本篇文章是對如何把session存入數(shù)據(jù)庫的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
php的session默認(rèn)的情況下是采用的文件方式來保存的,我們在php的配制文件php.ini中可以看到這樣的一行,session.save_handler="files",這樣的意思就是采用文件來保存session 的,要采用數(shù)據(jù)庫來保存的話,我們需要修改成擁護(hù)模式,改稱 session.save_handler="use"就可以了,但是,這僅僅是說明我門沒有采用文件的方式存儲session,我們還要選擇數(shù)據(jù)庫和建立數(shù)據(jù)庫的表。
建立數(shù)據(jù)庫和數(shù)據(jù)庫的表結(jié)構(gòu),我們可以采用php可以使用的任何的數(shù)據(jù)庫,因為php和mysql的結(jié)合最好,我就使用mysql來做事例,當(dāng)然根據(jù)你的需要可以改稱別的數(shù)據(jù)庫,同時因為mysql沒有事物的功能,這也比別的數(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的時候,把session_user_start.php。包含進(jìn)來,
注意,這個文件一定要在文件的第一行包含,然后就想使用文件的session一樣的方法使用舊可以了。
建立數(shù)據(jù)庫和數(shù)據(jù)庫的表結(jié)構(gòu),我們可以采用php可以使用的任何的數(shù)據(jù)庫,因為php和mysql的結(jié)合最好,我就使用mysql來做事例,當(dāng)然根據(jù)你的需要可以改稱別的數(shù)據(jù)庫,同時因為mysql沒有事物的功能,這也比別的數(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的時候,把session_user_start.php。包含進(jìn)來,
注意,這個文件一定要在文件的第一行包含,然后就想使用文件的session一樣的方法使用舊可以了。
相關(guān)文章
ThinkPHP like模糊查詢,like多匹配查詢,between查詢,in查詢,一般查詢書寫方法
ThinkPHP的數(shù)據(jù)庫條件查詢語句有字符串式,數(shù)組式書寫方法,字符串式即是原生式而數(shù)組式的查詢語句因書寫方式與特定字符的原因比較復(fù)雜,今天為大家講解一下ThinkPHP數(shù)組式查詢語句的書寫方法2018-09-09Php 構(gòu)造函數(shù)construct的前下劃線是雙的_
最近寫php的class時,總是碰到function non object的錯誤,知道是類沒有實例化,但就是不知道錯誤在哪里。2009-12-12PHP實現(xiàn)word轉(zhuǎn)pdf的兩種方式(有用!)
最近遇到一個需求,將word文件轉(zhuǎn)換成pdf,輾轉(zhuǎn)了一上午終于搞定了,下面這篇文章主要給大家介紹了關(guān)于PHP實現(xiàn)word轉(zhuǎn)pdf的兩種方式,需要的朋友可以參考下2022-09-09