Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class SQLSrv_Session
- {
- const DB_HOST= "1DB_HOST";
- const DB_PASS= "DB_PASS";
- const DB_USER= "DB_USER";
- const DB_NAME= "DB_NAME";
- const DB_SESSION_TABLE="DB_SESSION_TABLE";
- /**
- * Database connection resource
- *
- * @var resource
- */
- private static $_sess_db;
- /**
- * Escape string for mssql query
- *
- * @param string $data
- * @return string
- */
- private static function sqlsrv_escape($data) {
- return str_replace("'","''",$data);
- }
- /**
- * Open the session
- *
- * @return bool
- */
- public static function open() {
- $connectionInfo= array (
- 'UID' => self::DB_USER,
- 'PWD' => self::DB_PASS,
- 'Database' => self::DB_NAME
- );
- self::$_sess_db = sqlsrv_connect(self::DB_HOST,$connectionInfo);
- return self::$_sess_db;
- }
- /**
- * Close the session
- *
- * @return boolean
- */
- public static function close() {
- return sqlsrv_close(self::$_sess_db);
- }
- /**
- * Read the session
- *
- * @param string $id
- * @return string
- */
- public static function read($id) {
- $sql = 'SELECT SCS_DATA FROM '. self::DB_SESSION_TABLE .' '.
- 'WHERE SCS_ID = ''.self::sqlsrv_escape($id).''';
- $stmt= sqlsrv_query(self::$_sess_db, $sql);
- if (!empty($stmt)) {
- $row= sqlsrv_fetch_array($stmt,SQLSRV_FETCH_ASSOC);
- return $row['SCS_DATA'];
- }
- return '';
- }
- /**
- * Write the session
- *
- * @param string $id
- * @param string $value
- * @return boolean
- */
- public static function write($id, $value) {
- echo 'aaaaaaa';
- $sql= 'UPDATE '.self::DB_SESSION_TABLE.' SET SCS_DATA=?,SCS_ACCESS=? WHERE SCS_ID=?';
- $params = array(111112, 3333322, 12222221);
- $stmt= sqlsrv_query(self::$_sess_db, $sql, $params);
- print_r($params);
- if (!empty($stmt)) {
- $result= sqlsrv_rows_affected($stmt);
- if ($result>0) {
- echo 'eeew';
- return true;
- }else{
- echo $result;
- }
- }
- $sql= 'INSERT INTO '.self::DB_SESSION_TABLE.' (SCS_DATA,SCS_ACCESS, SCS_ID) VALUES (?,?,?)';
- $stmt= sqlsrv_query(self::$_sess_db, $sql, $params);
- print_r($params);
- if (!empty($stmt)) {
- $result= sqlsrv_rows_affected($stmt);
- if ($result>0) {
- return true;
- echo 'yyyyyy';
- }else{
- echo $result;
- }
- }
- return false;
- }
- /**
- * Destroy the session
- *
- * @param string $id
- * @return boolean
- */
- public static function destroy($id) {
- $sql = 'DELETE FROM '.self::DB_SESSION_TABLE.' WHERE SCS_ID = ?';
- $params= array(self::sqlsrv_escape($id));
- $stmt= sqlsrv_query(self::$_sess_db,$sql,$params);
- return ($stmt!==false);
- }
- /**
- * Garbage Collector
- *
- * @param integer $max
- * @return boolean
- */
- public static function gc($max) {
- $sql = 'DELETE FROM '.self::DB_SESSION_TABLE.' WHERE SCS_ACCESS < ?';
- $params= array(array(date("Y-m-d H:i:s",time() - $max)));
- $stmt= sqlsrv_query(self::$_sess_db, $sql, $params);
- return ($stmt!==false);
- }
- }
- // to prevent problem of session write after close as PHP 5.0.5
- register_shutdown_function('session_write_close');
- ini_set('session.save_handler', 'user');
- session_set_save_handler(array('SQLSrv_Session', 'open'),
- array('SQLSrv_Session', 'close'),
- array('SQLSrv_Session', 'read'),
- array('SQLSrv_Session', 'write'),
- array('SQLSrv_Session', 'destroy'),
- array('SQLSrv_Session', 'gc'));
- // display PHP error
- error_reporting(E_ALL);
- ini_set("display_errors", 1);
- // set the probability of garbage collector to 1
- ini_set('session.gc_probability', 100);
- ini_set('session.gc_divisor', 100);
- session_start();
- $_SESSION ['lll']= 'pppp';
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement