可以保持MYSQL会话打开吗?

时间:2013-01-14 03:05:47

标签: php mysql sql

是否可以保持SQL连接/会话"打开" PHP程序迭代之间,所以程序不必重新登录?

我编写了一个PHP程序,该程序不断(并且合法/尊重地)在网上轮询统计天气数据,然后将其转储到本地MYSQL数据库进行分析。我不想通过本地数据库浏览器查看数据,而是希望将其作为由外部Web主机托管的在线网页提供。

不确定解决此问题的最佳方法,我将本地MYSQL数据库导出到我的Web主机服务器上,认为这是因为PHP程序需要不断循环(并且比默认运行时更长, HTML也不断刷新其页面),最好是保留"引擎"在我的本地计算机上,我可以让页面在浏览器中不断循环,然后让它连接到我的Web服务器上的数据库并将数据转储到那里。

它工作了几个小时。但是,正如我担心的那样,我失去了访问我的cPanel登录/主机的权限。我已经通过自己的测试确认我的IP已被阻止(托管公司目前已关闭),毫无疑问,由于PHP程序每10分钟重新连接到在线SQL数据库一次。我并不认为这种行为和连接之间的时间长度足以保证知识产权黑名单,但唉,确实如此。

现在,除了让我的IP与托管公司列入白名单的可能性之外,有没有办法让MYSQL会话/连接保持活动状态,以便程序不必在迭代之间重新登录?

我想这可能只有在我可以无限期地运行PHP程序时才有可能,也许是在手动调整最大运行时间限制之后(我不知道是否还有其他外部限制,也许是浏览器)限制)。我不确定这是否可行,或者是否可行。

是否存在某种类型的低级系统范围" cookie"对于MYSQL连接?随着PHP程序的完成和关闭(然后等待HTML刷新页面),我认为不必再次重新登录的唯一方法是使用某种类型的cookie或IP地址访问(这将需要)服务器端功能/实现)。

我承认我的方法可能不是实现这一目标的最有效/最有效的方法。因此,我也开放了可以实现相同最终结果的替代方法和建议 - 一个连续的Web抓取循环,转储到数据库中,然后将数据库不断地转储到网页。

(除了要求我的网站托管服务商提供IP白名单,或者只是确定他们的防火墙访问禁令率之外,我正在寻求一种方法来实现这一目标。如果有&#我会做其中任何一种&# 39;真的没有可行或更好的方式。)

1 个答案:

答案 0 :(得分:1)

也许您可以尝试持久数据库连接。

此链接说明了持久连接:http://in2.php.net/manual/en/function.mysql-pconnect.php