gpt4 book ai didi

php - post/redirect/get 并在 SESSION 中保存数据库查询

转载 作者:行者123 更新时间:2023-11-29 09:00:06 25 4
gpt4 key购买 nike

我是发布/重定向/获取的新手。我正在编写第一个真实站点,这让我发现了 PRG 的必要性。所以我编写并获得了执行以下操作的工作代码:

1) user enters a search string

2) we search the database and find their desired search results

3) if we found their search results successfully, we alter the database --
a 'frequency of lookups' -- to indicate the user searched and found what
he was looking for

4) then display the results he searched on

我发现刷新浏览器中的页面会导致用户再次看到相同的搜索结果,但我们增加了“查找频率”——用户在数据库中查找的频率受到限制——所以如果用户刷新页面太多次,他们耗尽了每小时的数据库查找量。就在几天前,我发现了 Post/Redirect/Get。

我现在正在浏览该站点并更改所有更改数据库和显示结果的页面,并将它们切换到 PRG。新流程如下:

1) user enters a search string

2) we search the database and find their desired search results

3) if we found their search results successfully, we alter the database --
a 'frequency of lookups' -- to indicate the user searched and found
what he was looking for

4) PRG to a 'results' page

5) then display the results he searched on

我遇到了一个问题。我需要以某种方式“传递”上面步骤 (2) 中的搜索结果转到我在步骤 (5) 中创建的用于实现 PRG 的新“结果”页面。

所以我的问题是——有没有一种“最常见”的方法来做到这一点?在阅读周围的内容时,我看到“将结果保存在 .CSV 文件中”以及“将数据库搜索结果保存在 SESSION 中”。

我想将搜索结果保存在 SESSION 中,然后在我为 PRG 添加的“GET”页面上显示结果,我将从 session 变量中读取搜索结果并显示它们。

我的意思是我想这样做:

$result = mysql_query($query, $theDbServer);
$_SESSION['theSearchResults'] = $result.

然后在“显示”页面上,从 $_SESSION['theSearchResults'] 读回搜索结果并使用以下方式显示它们:

 $result = $_SESSION['theSearchResults'];
$row = mysql_fetch_row($result);

这是正常的做法吗?我怀疑我无法将原始 $result 保存在像上面这样的 session 变量中 - 但我也不确定如何将上面的 $result 放入 $_SESSION - 通常是如何完成的?

最佳答案

假设您不希望最终着陆页执行查询(当然不减少其配额),那么您将需要使用 session 。

保存到 CSV 不符合标准,并且扩展性不佳。我会将查询结果解析为更用户友好的形式(简单的类或列表或任何您需要的内容)。然后,我将类(class)而不是读者存储到 session 中。当他们离开结果页面时,您可能希望清除 session 的该部分(尤其是数据量很大时)。

这是假设您使用的是原始 php。有许多框架都具有针对这种情况的功能(您希望将一段数据从一个页面传输到下一个页面)。

关于php - post/redirect/get 并在 SESSION 中保存数据库查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8903156/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com