【问题标题】:On reloading page, MySQL query(UPDATE Query) is being execute on each reload在重新加载页面上,每次重新加载时都会执行 MySQL 查询(UPDATE Query)
【发布时间】:2015-02-13 10:36:15
【问题描述】:

在重新加载页面上,每次重新加载时都会执行 MySQL 查询(UPDATE Query)。我只想执行一次查询。请建议我一些解决方案。谢谢。

【问题讨论】:

  • 显示你尝试了什么
  • 使用会话存储执行查询的信息。所以总是检查会话......它是否已经执行。
  • 第一次加载请添加一个会话计数器变量,并在下一次 url 刷新时检查会话变量的值是否为 1。如果它有一个值,那么请不要执行查询。
  • 另一种选择是将用户从处理更新的页面重定向到另一个页面。
  • 每次您在提交按钮上进行任何保存或更新时,只需在操作后重定向页面。如果您留在该页面,则每次刷新都会更新或保存数据。

标签: php mysql reload page-refresh


【解决方案1】:

在您的更新查询中还有广告会话,并在执行查询之前检查会话值是否为空。如果为null则执行

<?php

    session_start();
    $_SESSION["reload"] = "1";

    ?>

查询前

if($_SESSION['reload'] !=''){
  //perform update query operation
}

【讨论】:

  • for ($j = 0; $j
  • session_start(); for ($j = 0; $j
【解决方案2】:

在第一次执行后尝试设置 cookie 或 session,在执行之前查询是否已经设置了 cookie 或 session,如果没有则执行。

【讨论】:

    【解决方案3】:

    <?php
      session_start();
      
      if (!isset($_SESSION['loaded']) {
        
        //you can process your update
        //and create the session key "loaded"
        $_SESSION['loaded'] = 1;
    
      } else {
      
        //the session already exist, you can do other things
    
      }
    ?>

    但是你必须在你的应用程序的某个地方销毁这个会话。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-09
      • 2018-07-04
      • 2018-01-23
      • 2015-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多