2010-11-16 181 views
0

我正在创建一个调试模块,它允许用户在主动观看页面如何更改时进行单线ajax调用。问题是如果用户正在尝试进行数据库调用。通过ajax调用保持数据库连接打开

用户可以运行函数mysql_connect(),但是一旦ajax调用完成,该连接立即关闭。有没有办法保持连接打开?我看了一下mysql_pconnect(),但似乎没有做到我想要的。

谢谢

+2

保持数据库连接打开的要点是什么? – 2010-11-16 19:59:43

+1

如果您想通过确保所有连接都已绑定来减少/终止可伸缩性,请继续。 – Oded 2010-11-16 20:05:19

+0

如果你真的读过我的文章,你会注意到这是一个调试模块。这个项目的整个目的是帮助设计一个页面 - IE:当没有其他用户连接时。在localhost上运行时,可伸缩性毫无意义。 – jwegner 2010-11-16 20:49:54

回答

0

我必须迷路。一旦脚本运行,连接应该关闭,gc应该在服务器上清理它。否则,你会遇到一些内存问题。

此外,Ajax调用不应该进行任何数据库连接,而应该在服务器上运行脚本。同样,该脚本应该在完成后关闭连接。

我想我真的不明白你遇到的问题。

+0

你完全正确。脚本运行,然后连接关闭并清理。这是我想要停止的。我希望用户调用连接到数据库的ajax脚本,然后脚本结束。然后用户调用另一个从数据库中提取数据的脚本 - 但我需要他们使用它们在第一个脚本中创建的相同连接来获取这些数据。实质上,我需要一个在整个用户会话中持续存在的数据库连接。 – jwegner 2010-11-16 20:46:22

0

如果你确实需要保持连接打开,我会考虑设置你从mysql_connect()获得的任何返回值作为用户会话值(声明:我不知道PHP,这是我假设你的使用)。然后每个AJAX请求测试存在并重用(如果已经存在)。但是,如果您所面临的实际问题是维持某种特定于连接的暂时状态,我将重新考虑设计并在与用户会话中的某种唯一标识符相关的连接之间执行一些操作。