这篇文章主要介绍了php实现将session写入数据库的相关资料,需要的朋友可以参考下
使用session_set_save_handler()函数,将session的内容写入数据库
prepare($sql);$stmt->execute(array($phpsessid));if(!$result = $stmt->fetch(pdo::fetch_assoc)){return '';}if(self::$ip == $result['client_ip']){self::destroy($phpsessid);return '';}if(($result['update_time']+self::$lifetime)prepare($sql);$stmt->execute(array($phpsessid));if($result=$stmt->fetch(pdo::fetch_assoc)){if($result['data'] != $data || self::$time > ($result['update_time']+30)){$sql = update session set update_time=?,data=? where phpsessid = ?;$stmt = self::$handler->prepare($sql);$stmt->execute(array($self::$time,$data,$phpsessid));}}else{if(!empty($data)){try{$sql = insert into session(phpsessid,update_time,client_ip,data) values(?,?,?,?);}catch(pdoexception $e){echo $e->getmessage();}$sth = self::$handler->prepare($sql);$sth->execute(array($phpsessid,self::$time,self::$ip,$data));}}return true;}public static function destroy($phpsessid){$sql = delete from session where phpsessid = ?;$stmt = self::$handler->prepare($sql);$stmt->execute(array($phpsessid));return true;}public static function gc($lifetime){$sql = delete from session where update_timeprepare($sql);$stmt->execute(array(self::$time-$lifetime));return true;} } //使用pdo连接数据库 try{$pdo = new pdo(mysql:host=localhost;dbname=session,root,hwj193); }catch(pdoexception $e){echo $e->getmessage(); } //传递数据库资源 session::start($pdo);
以上所述就是本文的全部内容了,希望大家能够喜欢。
,