Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 避免在coldfusion中刷新页面时插入数据_Image_Coldfusion - Fatal编程技术网

Image 避免在coldfusion中刷新页面时插入数据

Image 避免在coldfusion中刷新页面时插入数据,image,coldfusion,Image,Coldfusion,我是Coldfusion新手。当我刷新页面时,数据会插入两次,请提供一种方法,以避免在Coldfusion中刷新页面时插入数据将显示页面提交到流程页面。完成处理后,重定向回显示页面。这样,插入/更新/删除只需按显示页面上的插入/更新/删除按钮即可启动。将显示页面提交到流程页面。完成处理后,重定向回显示页面。这样,插入/更新/删除只需按下显示页面上的插入/更新/删除按钮即可启动。运行insert语句后,您将希望使用特拉维斯所说的 <cflocation url="yoururl" addto

我是Coldfusion新手。当我刷新页面时,数据会插入两次,请提供一种方法,以避免在Coldfusion中刷新页面时插入数据

将显示页面提交到流程页面。完成处理后,重定向回显示页面。这样,插入/更新/删除只需按显示页面上的插入/更新/删除按钮即可启动。

将显示页面提交到流程页面。完成处理后,重定向回显示页面。这样,插入/更新/删除只需按下显示页面上的插入/更新/删除按钮即可启动。

运行insert语句后,您将希望使用特拉维斯所说的

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


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

在运行INSERT语句后,您将希望像Travis所说的那样使用

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


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

页面刷新是获取重复记录的几种可能方法之一。我认为最有效的预防方法是在数据库中。以这样的方式编写insert查询:只添加不存在的记录

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

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

这是一个一般性的建议。某些详细信息可能会因使用的数据库软件而异。

页面刷新是获取重复记录的几种可能方法之一。我认为最有效的预防方法是在数据库中。以这样的方式编写insert查询:只添加不存在的记录

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

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

这是一个一般性的建议。根据所使用的数据库软件,某些详细信息可能会发生变化。

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

  • 插入前,检查会话值是否为
    “Y”
  • 如果会话值为
    “Y”
    ,请插入数据并将会话值更改为
    “N”
  • 若会话值为
    “N”
    ,则不要将数据插入表中
  • 如果页面在插入后刷新,它将检查会话值并找到
    “N”

    因此将不会插入数据。

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

  • 插入前,检查会话值是否为
    “Y”
  • 如果会话值为
    “Y”
    ,请插入数据并将会话值更改为
    “N”
  • 若会话值为
    “N”
    ,则不要将数据插入表中
  • 如果页面在插入后刷新,它将检查会话值并找到
    “N”

    因此不会插入数据。

    简短问题的简短回答,cf将位置移到其他页面。用你的代码和你是如何做的来扩展你的问题。这个问题是反对票的诱饵。简短问题的简短回答,请转到其他页面。用你的代码和你是如何做的来扩展你的问题。这个问题是否决票的诱饵。这是一个相当糟糕的实现,因为在我们已经知道数据插入的情况下,检查记录需要额外的时间。如果希望向最终用户发出url参数已添加的通知,则可以将url参数添加到cflocation。这是一个很好的批量插入解决方案,您可以从导入xls或其他内容中获得,但它不会阻止前端数据库、计数器、条件之外的其他更改,不受db影响且仍应缓解的etc。允许OP询问多个插入,但从更广泛的角度来看,这只是答案的一部分。这是一个相当糟糕的实现,因为在我们已经知道插入了数据的情况下,检查记录需要额外的时间。如果希望向最终用户发出url参数已添加的通知,则可以将url参数添加到cflocation。这是一个很好的批量插入解决方案,您可以从导入xls或其他内容中获得,但它不会阻止前端数据库、计数器、条件之外的其他更改,不受db影响且仍应缓解的etc。允许OP询问多个插入,但从更广泛的角度来看,这只是答案的一部分。这个答案符合我的要求。这答案符合我的要求。这很容易找到有效的解决办法