HI, 我使用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();
答案 0 :(得分:4)
你所拥有的是一个CGI脚本,足够接近。但是,您没有输出任何HTML,输出是空格分隔的。将您的内容类型更改为“text / plain”。
您需要的是运行CGI脚本的网络服务器。去查看有关lighttpd或apache的内容以及如何设置它们以运行CGI脚本(例如,the example for Apache)。对不起,关于这一点的任何内容都不会很有帮助,设置网络服务器的主题非常复杂,但希望一些搜索条件会让你朝着正确的方向前进。
或者,请注意,这不是为网络编写任何内容的现代方式。如果你正在探索什么是可能的(而不是真的很快解决问题),我建议你学习一个框架,比如Catalyst(在CPAN上)。那里有更多的前期工作,但从长远来看,无论你想做什么都会更容易。
答案 1 :(得分:1)
从CPAN开始。
答案 2 :(得分:1)
CGI计划没有什么特别之处。你必须输出一个CGI标题,但之后你可以像任何其他程序一样输出你喜欢的内容。
你准备做什么,确切地说,你有什么问题?运行程序时,什么不能正常工作?
答案 3 :(得分:1)
尝试阅读Ovid's CGI Course。它对我见过的基本CGI编程有了最好的解释。
答案 4 :(得分:0)
看起来您已经输出了所需的标题(内容类型+ 2个换行符),所以您只能通过Web浏览器查看此内容,将程序放在可以运行cgi的Web服务器上的目录中脚本(通常称为cgi-bin),确保文件是可执行的(chmod 755 yourscript.cgi),然后将Web浏览器指向所需的URL,例如http://yourserver/cgi-bin/yourscript.cgi
答案 5 :(得分:0)
我也想知道在网页上使用cgi显示Mysql数据库记录是否困难。这是我如何做到这一点的链接(虽然它是相当基本的,但它确实不太难): Using Perl and Mysql to create a webpage
我使用了CGI,HTML :: Template和DBI模块。这是使用模块创建留言簿网页的基本教程的链接: Using modules to create a webpage