我是Coldfusion的新手。当我刷新页面数据被插入两次时,请在coldfusion中刷新页面时避免数据插入的方法
答案 0 :(得分:3)
运行INSERT语句之后,你想要像Travis所说的那样使用<cflocation>
<cflocation url="yoururl" addtoken="false">
您需要将addtoken="false"
添加到cflocation
,因为这会阻止通过网址传递客户端变量。
答案 1 :(得分:1)
让您的显示页面提交到流程页面。完成处理后,重定向回显示页面。这样,只有按显示页面上的插入/更新/删除按钮才能启动插入/更新/删除。
答案 2 :(得分:0)
页面刷新是您可以获得重复记录的几种可能方式之一。我认为防止这种情况的最有效方法是在数据库中。以这样的方式编写插入查询,即只添加尚不存在的记录。
有几种方法可以做到这一点。我个人最喜欢的是:
INSERT INTO myTable ( field1, field2, etc )
SELECT DISTINCT value1, value2, etc
FROM someSmallTable
WHERE NOT EXISTS
(
subquery to check for existing records
)
这是一般性建议。根据所使用的数据库软件,某些细节可能会发生变化。
答案 3 :(得分:0)
在会话中维护一个标志,指示是否将数据插入数据库表。请按照以下步骤操作:
"Y"
"Y"
,请插入数据并将会话值更改为"N"
"N"
,请勿将数据插入表中。如果页面在插入后刷新,它将检查会话值并找到"N"
。
所以不会插入数据。