1

我正在做一个项目,我在其中使用 mysql 数据库和三个表:RequestsResponsesUsers

第一个(索引)页面是纯 HTML,其中链接可用。这些链接将执行 Perl 脚本以从数据库中获取数据并将数据传递到模板文件,因此将生成下一页。

我的问题是每次我需要从 MySQL 数据库中获取数据时,是否需要打开与数据库的连接,并在获得查询结果后再次关闭它?如何跨查询保持连接,从而无需重新连接到数据库?

我可以在单独的函数中将每个查询放在一个 Perl 文件中吗?如果是这样,如何提供 Perl 函数的链接?

4

1 回答 1

2

嗯,这实际上看起来更像是四个问题而不是一个。正如@DavidO 指出的那样,在 CGI 下,您不会跨页面请求维护持久的数据库连接。但是,让我回答您提出的主要问题:

“我的问题是每次我需要从 MySQL 数据库中获取数据时,我是否需要打开与数据库的连接,并在得到查询结果后再次关闭它?”

如果您的 CGI 脚本需要针对给定请求对数据库运行多个查询,则无需为每个查询关闭并重新打开连接。查看DBI文档,您会发现可以为每个请求创建一个数据库句柄,只要连接保持打开状态,您就可以使用它对数据库运行任意数量的查询。

展望未来,我鼓励您查看DBIx::Class,它可以为您抽象出大部分这些细节。如果您刚刚开始使用 Perl 和数据库,那么您会花很多时间去思考,但是一旦您熟悉了它,它就是真正的救命稻草。

于 2012-05-30T04:50:39.840 回答