Введение в СУБД MySQL


Example.13.5


sub add3 { my $subject = para'm( 'subjects'); my $num = param('num'); $name = param('name') if param('name'); my $qname; ($qname = $name) =" s/'/\\'/g; my $q1 = "insert into test (id, name, subject, num) values ( '.'-, '$qname', $subject, $num)"; my Sin = $dbh->prepare($q1); $in->execute; # Извлечем значение ID , которое MySQL создал для нас my $id = $in->insertid; my $query = "create table t$id ( id INT NOT NULL, my $def = "insert into t$id values ( 0, "; my $total = 0; my @qs = grep(/^q\d+$/,param); foreach (@qs) { $query .= $_ . " INT,\n"; my $value = 0; $value = param($_) if param($_); $def .= "lvalue, "; $total += $value; } $query .= "total INT\n)"; $def .=-"$total)"; my $in2 = $dbh->prepare($query); $in2->execute; my $in3 = $dbh->prepare($def); $in3->execute; # Обратите внимание, что мы запоминаем экзамены в отдельных файлах. # Это полезно при работе с mSQL, поскольку он не поддерживает BLOB. # (Тип TEXT, поддерживаемый в mSQL 2, можно использовать, # но это неэффективно.) # Поскольку мы используем MySQL, можно с таким же успехом # поместить весь экзамен в BLOB. open(TEST,">teach/tests/$id") or die("A: $id $!"); print TEST param('test'), "\n"; close TEST; print header, start_html('title'=>'Экзамен создан', 'BGCOLOR'=>'white'); print <<END_OF_HTML; <Н1>Экзамен создан</h1> <P> Экзамен создан. <р> <А HREF=".">Перейти</а> на домашнюю страницу 'В помощь учителю'.<br> <А HREF="test.cgi">nepeimi</a> на главную страницу экзаменов.<br> <А HREF="test.cgi?actio,n=add">Добавить</a> следующий экзамен. </body></html> END_OF_HTML }

Листинг 13.5. Закрыть окно




Начало  Назад  Вперед