日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

php session mysql_php session mysql存储

發(fā)布時(shí)間:2024/4/17 数据库 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php session mysql_php session mysql存储 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一直知道邏輯沒實(shí)際用過,今天試用下!

session.gc_divisor ? 100

session.gc_maxlifetime 1440

session.gc_probability ?1

以上三值很重要,session.gc_divisor決定了回收頻率。測試時(shí)可以設(shè)置小點(diǎn)才有效果!

class Session

{

/**

* a database connection resource

* @var resource

*/

private static $_sess_db;

/**

* Open the session

* @return bool

*/

public static function open() {

if (self::$_sess_db = mysql_connect('localhost:3306',

'root',

'123456')) {

return mysql_select_db('sessions', self::$_sess_db);

}

return false;

}

/**

* Close the session

* @return bool

*/

public static function close() {

return mysql_close(self::$_sess_db);

}

/**

* Read the session

* @param int session id

* @return string string of the sessoin

*/

public static function read($id) {

$id = mysql_real_escape_string($id);

$sql = sprintf("SELECT `session_data` FROM `sessions` " .

"WHERE `session` = '%s'", $id);

if ($result = mysql_query($sql, self::$_sess_db)) {

if (mysql_num_rows($result)) {

$record = mysql_fetch_assoc($result);

return $record['session_data'];

}

}

return '';

}

/**

* Write the session

* @param int session id

* @param string data of the session

*/

public static function write($id, $data) {

$sql = sprintf("REPLACE INTO `sessions` VALUES('%s', '%s', '%s')",

mysql_real_escape_string($id),

mysql_real_escape_string(time()),

mysql_real_escape_string($data)

);

return mysql_query($sql, self::$_sess_db) or die("Invalid query: " . mysql_error());

;

}

/**

* Destoroy the session

* @param int session id

* @return bool

*/

public static function destroy($id) {

$sql = sprintf("DELETE FROM `sessions` WHERE `session` = '%s'", $id);

return mysql_query($sql, self::$_sess_db);

}

/**

* Garbage Collector

* @param int life time (sec.)

* @return bool

* @see session.gc_divisor ? 100

* @see session.gc_maxlifetime 1440

* @see session.gc_probability ?1

* @usage execution rate 1/100

* ? ?(session.gc_probability/session.gc_divisor)

*/

public static function gc($max) {

$sql = sprintf("DELETE FROM `sessions` WHERE `session_expires` < '%s'",

mysql_real_escape_string(time() - $max));

var_dump($sql);

return mysql_query($sql, self::$_sess_db);

}

}

ini_set('zend.enable_gc', 1);

ini_set('session.gc_probability', 1);

ini_set('session.save_handler', 'user');

session_set_save_handler(array('Session', 'open'),

array('Session', 'close'),

array('Session', 'read'),

array('Session', 'write'),

array('Session', 'destroy'),

array('Session', 'gc')

);

if (session_id() == "") session_start();

//session_regenerate_id(false); //also works fine

if (isset($_SESSION['counter'])) {

$_SESSION['counter']++;

} else {

$_SESSION['counter'] = 1;

}

echo '
SessionID: '. session_id() .'
Counter: '. $_SESSION['counter'];

?>

與50位技術(shù)專家面對面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的php session mysql_php session mysql存储的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。