2

我是Coldfusion的新手。当我刷新页面数据插入两次时,请在coldfusion中刷新页面时避免数据插入

4

4 回答 4

3

运行 INSERT 语句后,你会想像<cflocation>Travis 说的那样使用

<cflocation url="yoururl" addtoken="false">

您需要添加addtoken="false"到您的cflocation,因为这将阻止通过 url 传递客户端变量。

于 2013-02-13T16:06:01.333 回答
1

让您的显示页面提交到流程页面。完成处理后,重定向回您的显示页面。这样,插入/更新/删除只能通过按下显示页面上的插入/更新/删除按钮来启动。

于 2013-02-13T16:02:13.773 回答
0

页面刷新是获得重复记录的几种可能方式之一。我认为防止这种情况的最有效方法是在数据库中。以仅添加不存在的记录的方式编写插入查询。

有几种方法可以做到这一点。我个人最喜欢的是这个:

    INSERT INTO myTable ( field1, field2, etc )
    SELECT DISTINCT value1, value2, etc
    FROM   someSmallTable
    WHERE  NOT EXISTS
           (
              subquery to check for existing records
           )

这是一个通用的建议。一些细节可能会根据所使用的数据库软件而改变。

于 2013-02-13T17:33:29.260 回答
0

在会话中维护一个标志,指示是否将数据插入数据库表。执行以下步骤:

  1. 在插入之前,检查会话值是否"Y"
  2. 如果会话值为"Y",则插入数据并将会话值更改为"N"
  3. 如果会话值为"N",则不向表中插入数据。

如果页面在插入后刷新,它会检查会话值并找到"N". 所以数据不会被插入。

于 2013-02-14T11:43:11.950 回答