MySQLi查询在每次浏览器刷新时运行

时间:2015-06-13 18:15:24

标签: php mysqli

当我运行此代码时," INSERT INTO aks_balance_history"查询和"更新aks_account"查询一次又一次地运行。每次刷新时数据库都会更新,而" UPDATE aks_counter"只运行一次(根据需要)。 我真的被这段代码困住了,请帮忙。

if(isset($_POST['update_btn_counter']))
        {
            mysqli_query($link,"INSERT INTO aks_balance_history(bh_amount,bh_from,bh_to,bh_reason) VALUES('".$_POST["used_balance"]."','Counter Cash','".$_POST["select_account"]."','".$_POST["reason"]."') ");
            mysqli_query($link,"UPDATE aks_counter SET counter_balance = counter_balance - '$_POST[used_balance]' WHERE counter_id='0' ");
            mysqli_query($link,"UPDATE aks_account SET account_balance = account_balance + '$_POST[used_balance]' WHERE account_title='$_POST[select_account]' ");
        }

1 个答案:

答案 0 :(得分:1)

当然,这是因为浏览器再次发送相同的请求。这就是你刷新时所要求的。如果要防止这种情况,则必须在执行数据库操作后重定向浏览器。您通常将其重定向到某些只读代码,该代码从数据库中读取结果并显示它。然后你可以刷新你想要的频率。

目前您不会重新加载表单,而是第一次提交后获得的表单的结果。要重新提供该结果,服务器必须重新运行相同的代码,因此执行相同的操作。

典型的解决方案是将表单提交发送到某个处理脚本,如果应该再次提供,则重定向回表单。