/[MITgcm]/mitgcm.org/devel/buildweb/pkg/swish-e/prog-bin/MySQL.pl
ViewVC logotype

Annotation of /mitgcm.org/devel/buildweb/pkg/swish-e/prog-bin/MySQL.pl

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1.1.1 - (hide annotations) (download) (vendor branch)
Fri Sep 20 19:47:30 2002 UTC (22 years, 10 months ago) by adcroft
Branch: Import, MAIN
CVS Tags: baseline, HEAD
Changes since 1.1: +0 -0 lines
File MIME type: text/plain
Importing web-site building process.

1 adcroft 1.1 #!/usr/local/bin/perl -w
2     use strict;
3    
4     =pod
5    
6     This is an example program to index data stored in a MySQL database.
7    
8     In this example, a table is read that contains "minutes" from some
9     organization's meetings. The text of the minutes was stored in a
10     blob, compressed with zlib.
11    
12     This script reads the record from MySQL, uncompresses the text, and
13     formats for swish-e. The example below uses HTML, but you could
14     also format at XML, or even plain text.
15    
16     =cut
17    
18    
19     use DBI;
20     use Compress::Zlib;
21     use Time::Local;
22    
23     my %database = {
24     dsn => 'dbi:mysql:test',
25     user => 'user',
26     password => 'pass',
27     };
28    
29     my $dbh = DBI->connect( @database{qw/ dsn user password /}, { RaiseError => 1 } );
30    
31     my $sth = $dbh->prepare("select id, date, minutes from meetings");
32    
33     $sth->execute();
34    
35     while ( my( $id, $date, $minutes) = $sth->fetchrow_array ) {
36    
37     my $uncompressed = uncompress( $minutes );
38    
39     my $unix_date = unixtime( $date );
40    
41    
42     my $content = <<EOF;
43     <html>
44     <head>
45     <title>
46     Minutes for meeting on date $date
47     </title>
48     </head>
49     <body>
50     $uncompressed
51     </body>
52     </html>
53     EOF
54    
55     my $length = length $content;
56    
57    
58    
59     print <<EOF;
60     Content-Length: $length
61     Last-Mtime: $unix_date
62     Path-Name: /minutes/index.cgi?id=$id
63     Document-Type: HTML
64    
65     EOF
66     print $content;
67    
68     }
69    
70     sub unixtime {
71     my ( $y, $m, $d ) = split /-/, shift;
72     return timelocal(0,0,0,$d,$m-1,$y-1900);
73     };
74    

  ViewVC Help
Powered by ViewVC 1.1.22