2

嗨,我使用 DBI 模块在 Perl 中编写了一个程序。我可以使用 CGI 显示 MySQL 的输出吗?如果是这样,请帮助我。

程序:

#!/usr/bin/perl -w
use DBI;

print "Content-type:text/html\n\n";
$db_handle = DBI->connect("dbi:mysql:database=CYP1B1;host=localhost:192.168.3.93;")
    or die "Couldn't connect to database: $DBI::errstr\n";

$sql = "SELECT * FROM BPCG";
$statement = $db_handle->prepare($sql)
    or die "Couldn't prepare query '$sql': $DBI::errstr\n";

$statement->execute()
    or die "Couldn't execute query '$sql': $DBI::errstr\n";
print "Location\tNucleotidechange\tAminoacidchange\n";
while(($Location,$Nucleotidechange,$Aminoacidchange)=$statement->fetchrow_array())
{
    print "$Location  $Nucleotidechange               $Aminoacidchange \n";

}
$db_handle->disconnect();
4

6 回答 6

4

你所拥有的是一个 CGI 脚本,足够接近。但是,您没有输出任何 HTML,该输出是用空格分隔的。将您的内容类型更改为“文本/纯文本”。

您需要的是一个网络服务器来运行您的 CGI 脚本。去查找有关 lighttpd 或 apache 的内容,以及如何设置它们以运行 CGI 脚本(例如,Apache 的示例)。抱歉,没有什么是很有帮助的,设置网络服务器的主题相当复杂,但希望一些搜索词能让你朝着正确的方向前进。

或者,请注意,这不是为网络编写任何内容的现代方式。如果您正在探索什么是可能的(而不是快速解决问题),我建议您学习一个框架,例如 Catalyst(在 CPAN 上)。那里有更多的前期工作,但从长远来看,无论你想要做什么都会更容易做到。

于 2009-04-28T13:21:36.483 回答
1

尝试阅读Ovid 的 CGI 课程。它有我见过的基本 CGI 编程的最佳解释。

于 2009-04-28T20:24:48.680 回答
1

从CPAN开始。

于 2009-04-28T09:59:25.797 回答
1

CGI 程序并没有什么特别之处。您必须输出 CGI 标头,但之后您可以像任何其他程序一样输出您喜欢的内容。

你到底想做什么,你有什么问题?当你运行你的程序时,什么没有按你预期的那样工作?

于 2009-04-28T18:24:44.617 回答
0

我也想知道在网页上使用 cgi 显示 Mysql 数据库记录是否困难。这是我如何做到的链接(虽然它相当基本,但真的不是太难): Using Perl and Mysql to create a pages

我使用了 CGI、HTML::Template 和 DBI 模块。这是使用模块创建留言簿网页的基本教程的链接: 使用模块创建网页

于 2009-11-29T17:12:26.020 回答
0

看起来您已经在输出所需的标头(内容类型 + 2 个换行符),因此您通过 Web 浏览器查看此内容的所有剩余操作是将程序放在可以运行 cgi 脚本的 Web 服务器上的目录中(通常称为 cgi-bin),确保文件是可执行的(chmod 755 yourscript.cgi),然后将您的 Web 浏览器指向所需的 URL,例如http://yourserver/cgi-bin/yourscript.cgi

于 2009-04-29T00:01:33.933 回答