Могу ли я отобразить вывод MySQL с помощью CGI? - PullRequest
2 голосов
/ 28 апреля 2009

HI, Я написал программу на Perl с использованием модуля DBI. Могу ли я отобразить вывод MySQL с помощью CGI? Если так, пожалуйста, помогите мне.

Программа:

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

Ответы [ 6 ]

4 голосов
/ 28 апреля 2009

То, что у вас есть, это скрипт CGI, достаточно близко. Вы ничего не выводите HTML, однако, этот вывод разделен пробелом. Измените тип контента на «текст / обычный».

Вам нужен веб-сервер для запуска вашего CGI-скрипта. Найдите что-нибудь о lighttpd или apache и о том, как их нужно настроить для запуска CGI-скриптов (например, пример для Apache ). Извините, ничего из этого не будет очень полезным, тема настройки веб-серверов довольно сложна, но, надеюсь, несколько поисковых запросов укажут вам правильное направление.

Кроме того, имейте в виду, что это не современный способ написания чего-либо для Интернета. Если вы исследуете, что возможно (в отличие от решения проблемы очень быстро), я предлагаю вам изучить такую ​​среду, как Catalyst (которая находится на CPAN). Там есть больше предварительных работ, но все, что вы пытаетесь сделать, будет легче сделать в долгосрочной перспективе.

1 голос
/ 29 апреля 2009

Попробуйте прочитать Курс CGI Овидия . Это лучшее объяснение базового программирования CGI, которое я видел.

1 голос
/ 28 апреля 2009

В программах CGI нет ничего особенного. Вы должны вывести CGI-заголовок, но после этого вы можете вывести то, что вам нравится, как и любую другую программу.

Что именно вы пытаетесь сделать, и с какой проблемой вы сталкиваетесь? Что не работает, как вы ожидаете, когда вы запускаете свою программу?

1 голос
/ 28 апреля 2009

Начать с CPAN .

0 голосов
/ 29 ноября 2009

Мне тоже было интересно, трудно ли отображать записи базы данных Mysql с помощью cgi на веб-страницах. Вот ссылка на то, как я это сделал (хотя это довольно просто, это действительно было не слишком сложно): Использование Perl и Mysql для создания веб-страницы

Я использовал модули CGI, HTML :: Template и DBI. Вот ссылка на базовый учебник, который использует модули для создания веб-страницы гостевой книги: Использование модулей для создания веб-страницы

0 голосов
/ 29 апреля 2009

Похоже, вы уже выводите требуемый заголовок (тип контента + 2 новых строки), поэтому вам остается только просмотреть это через веб-браузер, чтобы поместить программу в каталог на веб-сервере, который может запустить cgi скрипты (обычно называемые cgi-bin), убедитесь, что файл является исполняемым (chmod 755 yourscript.cgi), а затем укажите веб-браузер на требуемый URL, например http://yourserver/cgi-bin/yourscript.cgi

...