Forum Webscript.Ru

Общие => Базы данных => Тема начата: Ленивый гость от 12 Ноября 2002, 12:08:36

Название: Запись в базу данных
Отправлено: Ленивый гость от 12 Ноября 2002, 12:08:36
Что у мменя здесь не так, помогите начинаещему:
use DBI;
print "content-type:text/html\\n\\n";
$method=$ENV{\'QUERY_STRING\'};
$form_data=~s/%(..)/pack("C", hex($1))/eg;
$form_data=~s/\\n/\\0/g;
@pairs=split(/&/, $form_data);
foreach $pair(@pairs)  {
($name, $value)=split(/=/, $pair);
$form{name}=$value;
}
my $dbh=DBI->connect("DBI:mysql:database=lib; host=localhost", "root", "") or die $DBI::errstr;
if (!$form{\'tema\'})
{
$result="INSERT INTO tema (kod, tema) VALUES (\'\', \'$value{\'tema\'}\')";
print<
Запись в базу прошла успешно
Ok
;
}

где kod автоинкрементное поле
tema символьное
Заполняя форму и вызывая этот скрипт, сначала браузер предлагает сохранить или открыть данный скрипт, а потом быстро выполняет ничего на екран не выводя, и даже запись в базу не вставляет. Помогите плиз.
И второе: где можно взять хорошую литературу по перлу , в часности для работы c бд в инете? Спасибо
Название: Запись в базу данных
Отправлено: NeoNox от 12 Ноября 2002, 12:16:25
Цитировать
Заполняя форму и вызывая этот скрипт, сначала браузер предлагает сохранить или открыть данный скрипт, а потом быстро выполняет ничего на екран не выводя, и даже запись в базу не вставляет. Помогите плиз.

Установи и правильно настрой сначала Perl. Читай DBI или Применение Perl и MySQL для веб приложений (кажется так). Кстати, советую читать обе.
Название: Запись в базу данных
Отправлено: NeoNox от 12 Ноября 2002, 12:32:34
Вот тебе пример:
#! /usr/bin/perl -w

use strict;
use CGI qw(:standard);
use DBI;

my $tema=param("tema");

if ($tema eq "tema")
{
my $dbh=DBI->connect("DBI:mysql:host=localhost; database=lib", "root", "") or die $DBI::errstr;
my $sth=$dbh->prepare("INSERT INTO
                       tema (kod, tema)
                       VALUES
                       (\'\', \'$tema\')";
$sth->finish();
$dbh->disconnect;
print header(),
start_html (-title => "Simple test DB",
                 -bgcolor => "silver"),
p u ("Запись в базу прошла успешно"),
end_form();
}
Только почитай сначала документацию.