mysql - 如何在 Perl CGI 中使用持久的 MySQL 数据库连接

标签 mysql perl

我正在从事一个项目,我在其中使用包含三个表的 mysql 数据库:RequestsResponsesUsers

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

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

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

最佳答案

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

"My question is every time I need to fetch data from the MySQL database, do I need to open a connection with database, and after getting the query result close it again?"

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

展望 future ,我鼓励您查看 DBIx::Class ,它可以为您抽象出其中的大部分细节。如果您刚开始使用 Perl 和数据库,那么需要花很多时间思考,但一旦您熟悉了它,它就会成为真正的救星。

关于mysql - 如何在 Perl CGI 中使用持久的 MySQL 数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10803683/

相关文章:

mysql - 在条件下使用 GROUP BY,怎么样?

php - paytm 在核心 php 中的集成

php mysql 未定义索引

perl - 缓冲区溢出字符解析

windows - 使用Perl获取硬盘信息

perl - 如何在 Perl 中使用原始套接字?

php - 对mysql中同一个表的多列求和

perl - 一个简单的perl程序,用于从不同文件发送数据

perl - 如何从 DBIx::Class 中的链接表获取值?

mysql - SQL JOINS 和命名连接列