Home  >  Article  >  Backend Development  >  Example of php using mysql database to store session

Example of php using mysql database to store session

WBOY
WBOYOriginal
2016-07-25 09:07:381049browse
  1. CREATE TABLE `db_session` (
  2. `sesskey` char(32) NOT NULL,
  3. `expiry` int(11) unsigned NOT NULL,
  4. `value` text NOT NULL,
  5. PRIMARY KEY (`sesskey`)
  6. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Copy code

Database shows: db_session Column names: sesskey, expiry, value Where: sesskey is the primary key. Value stores the value in the session.

3. Create session_mysql.php file. This file is used to construct a method to save the session. Just modify the parameters and use it directly. session_mysql.php php code:

  1. $gb_DBname="db_myBBS";//Database name
  2. $gb_DBuser="root";//Database user name
  3. $gb_DBpass="23928484";//Database password
  4. $gb_DBHOSTname ="localhost";//The name or IP address of the host
  5. $SESS_DBH="";
  6. $SESS_LIFE=get_cfg_var("session.gc_maxlifetime");//Get the maximum validity period of the session.
  7. function sess_open($save_path,$session_name){
  8. global $gb_DBHOSTname,$gb_DBname,$gb_DBuser,$gb_DBpass,$SESS_DBH;
  9. if(!$SESS_DBH=mysql_pconnect($gb_DBHOSTname,$gb_DBuser,$gb_DBpass)){
  10. echo "
  11. MySql Error:".mysql_error()."
  12. ";
  13. die();
  14. }
  15. if(!mysql_select_db($gb_DBname,$SESS_DBH)){
  16. echo "
  17. MySql Error: ".mysql_error()."
  18. ";
  19. die();
  20. }
  21. return true;
  22. }
  23. function sess_close(){
  24. return true;
  25. }
  26. function sess_read($key){
  27. global $SESS_DBH,$SESS_LIFE;
  28. $qry="select value from db_session where sesskey = '$key' and expiry > ".time();
  29. $qid=mysql_query($qry,$SESS_DBH);
  30. if(list( $value)=mysql_fetch_row($qid)){
  31. return $value;
  32. }
  33. return false;
  34. }
  35. function sess_write($key,$val){
  36. global $SESS_DBH,$SESS_LIFE;
  37. $expiry=time() +$SESS_LIFE;
  38. $value=$val;
  39. $qry="insert into db_session values('$key',$expiry,'$value')";
  40. $qid=mysql_query($qry,$SESS_DBH);
  41. if(!$qid){
  42. $qry="update db_session set expiry=$expiry, value='$value' where sesskey='$key' and expiry >".time();
  43. $qid=mysql_query($ qry,$SESS_DBH);
  44. }
  45. return $qid;
  46. }
  47. function sess_destroy($key){
  48. global $SESS_DBH;
  49. $qry="delete from db_session where sesskey = '$key'";
  50. $qid=mysql_query ($qry,$SESS_DBH);
  51. return $qid;
  52. }
  53. function sess_gc($maxlifetime){
  54. global $SESS_DBH;
  55. $qry="delete from db_session where expiry < ".time();
  56. $qid= mysql_query($qry,$SESS_DBH);
  57. return mysql_affected_rows($SESS_DBH);
  58. }
  59. session_module_name();
  60. session_set_save_handler("sess_open","sess_close","sess_read","sess_write","sess_destroy","sess_g c" );
  61. ?>
Copy the code

4. Create a test file. The session_mysql.php file just created must be referenced before use. File: session_test.php

  1. include ("session_mysql.php");
  2. session_start();
  3. $_SESSION['abc']= "A: I will be back!";
  4. $_SESSION['meto ']= "B: Me too ";
  5. $_SESSION['name']= "louis ";
  6. echo "click me";
  7. ?>
Copy code

File: get_session_test.php

  1. include ("session_mysql.php");
  2. session_start();
  3. echo $_SESSION['abc'];
  4. echo "
    ";
  5. echo $_SESSION[' meto'];
  6. echo "
    ";
  7. echo $_SESSION['name'];
  8. $_SESSION['wq']="12e";
  9. echo "
    click again";
  10. ?>
Copy code

File: get_session_test2.php

  1. include ("session_mysql.php");
  2. session_start();
  3. echo $_SESSION['abc'];
  4. echo "
    ";
  5. echo $_SESSION[' meto'];
  6. echo "
    ";
  7. echo $_SESSION['name'];
  8. echo "
    ";
  9. echo $_SESSION['wq'];
  10. //session_destroy();/ /Function used to destroy all sessions.
  11. ?>
Copy code


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn