2009-04-28 8 views
2

HI、 DBIモジュールを使用してPerlでプログラムを作成しました。 CGIを使用してMySQLの出力を表示できますか?もしそうなら、私を助けてください。MySQLの出力をCGIで表示できますか?

プログラム:CPAN

#!/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(); 

答えて

1

スタート。

4

あなたが持っているものは、十分に近いCGIスクリプトです。ただし、出力はスペースで区切られていますが、HTMLは出力しません。コンテンツの種類を 'text/plain'に変更します。

CGIスクリプトを実行するウェブサーバーが必要です。 lighttpdやApacheについて何か調べ、CGIスクリプトを実行するためにそれらを設定する必要があるかどうかを調べてください(例えば、the example for Apache)。申し訳ありませんが、それについては何も役立たず、Webサーバーを設定するトピックは非常に複雑ですが、いくつかの検索用語が適切な方向に向いています。

また、これはウェブのための何かを書く現代的な方法ではないことに注意してください。可能なことを探っているのなら(本当に問題を速く解決するのではなく)、Catalyst(CPAN上にある)などのフレームワークを学ぶことをお勧めします。そこにはもっと先駆的な仕事がありますが、あなたがやろうとしていることは、長期的にはもっとやりやすいでしょう。

1

特にCGIプログラムには特別なことはありません。 CGIヘッダーを出力する必要がありますが、その後は他のプログラムと同様に好きなものを出力することができます。

あなたは何をしようとしていますか、正確にはどのような問題がありますか?あなたのプログラムを実行するときに期待どおりに動作しないものはありますか?

1

Ovid's CGI Courseをお試しください。私が見てきた基本的なCGIプログラミングについての最良の説明があります。

0

必要なヘッダー(コンテンツタイプ+ 2改行)が既に出力されているように見えます.Webブラウザでこれを表示するには、実行可能なWebサーバー上のディレクトリにプログラムを置くだけですcgiスクリプト(通常はcgi-binと呼ばれます)の場合、ファイルが実行可能であることを確認し(chmod 755 yourscript.cgi)、必要なURLにWebブラウザを指定します。 http://yourserver/cgi-bin/yourscript.cgi

0

Webページでcgiを使用してMysqlデータベースレコードを表示することが困難であるかどうかも疑問でした。ここに私がどのようにしたかについてのリンクがあります(かなり基本的ですが、それほど難しくありませんでした)。 Using Perl and Mysql to create a webpage

CGI、HTML :: TemplateおよびDBIモジュールを使用しました。モジュールを使用してゲストブックのウェブページを作成する基本的なチュートリアルへのリンクは次のとおりです。 Using modules to create a webpage