如何在会话到期时自动删除表的所有记录

时间:2012-05-24 12:37:51

标签: php mysql

您能告诉我当用户会话到期或用户关闭浏览器时如何删除下表中的所有记录。

tablename:test

id  sessions_id     value
1    admin_1         12 
2    admin_1         12 

我知道临时表,但我不想使用它...因为我在创建表之后无法获取数据。

谢谢:)

我尝试过:

 function logout(){

   //My query to delete the table
    $this->session->sess_destroy();
   redirect('login');

  }

上述解决方案工作正常,但我想知道如果任何用户没有注销会发生什么......只是关闭窗口。

3 个答案:

答案 0 :(得分:4)

试试这个:

  • 向您的表格添加timestamp
  • 在每个页面上,UPDATE此列包含与当前用户相关的每一行的当前时间戳
  • 使用cron调用PHP脚本,其中每小时DELETE时间戳太旧的行。

答案 1 :(得分:1)

快速阅读http://www.tonymarston.net/php-mysql/session-handler.html。它解释了如何在数据库中保存会话并为您提供完整的解决方案。

答案 2 :(得分:0)

   <?php 

  // $sessions_id is your session id

      if(empty($sessions_id) == true ){

    //execute query 

      // for ex   delete from test where sessions_id = '$sessions_id';     



     }



     ?>