刷新页面时如何防止SQL查询再次执行?

时间:2019-06-24 14:24:05

标签: php html

我有一个网页(submit_score.php),您可以在其中提交测试成绩,并绘制点分布图。输入分数后,请按一下按钮,然后转到显示分数分布的页面(point_chart.php)。

在“ point_chart.php”页面中,我有一些SQL查询,这些查询实际上将分数添加到ChartJS然后显示在页面上的数据库表中。

问题是,一旦您进入“ point_chart.php”并刷新页面,它还将再次运行SQL查询,并将这些点再次添加到数据库表中。

我知道PRG模式,但是我没有找到任何有用的在线信息。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

  

我知道PRG模式

这就是解决方案。

  1. 浏览器向PHP程序发出POST请求
  2. 程序运行查询,将查询点添加到数据库中,并通过重定向响应对浏览器进行响应
  3. 浏览器向另一个PHP程序发出GET请求
  4. 第二个程序从数据库中读取数据并生成嵌入了ChartJS的页面

答案 1 :(得分:0)

我认为Post,Redirect,Get模式是一个很好的解决方案。

  • submit_score.php将保持表单不变,将其发布到必须创建的新页面上
  • record_score.php将是新页面,您将在其中插入插入查询,在sql插入后,它将重定向到point_chart.php
  • point_chart.php,您将从此处删除插入查询((无论如何,post变量都将不再在那里插入),而仅显示图表。

一旦他们位于point_chart.php上,他们便可以刷新自己内心的内容