【问题标题】:Can I display the output of MySQL using CGI?我可以使用 CGI 显示 MySQL 的输出吗?
【发布时间】:2023-03-14 17:07:01
【问题描述】:

嗨, 我使用 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();

【问题讨论】:

    标签: mysql perl cgi dbi


    【解决方案1】:

    CPAN开始。

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          【解决方案4】:

          尝试阅读Ovid's CGI Course。它是我见过的对基本 CGI 编程的最佳解释。

          【讨论】:

            【解决方案5】:

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

            【讨论】:

              【解决方案6】:

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

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

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2015-01-11
                • 1970-01-01
                • 1970-01-01
                • 2016-04-16
                相关资源
                最近更新 更多