1

データベース「peoples」に接続し、そこからデータを取得するコードを作成しています。ボタンをクリックして、このボタンがクリックされた人のIDを取得し、削除または更新する必要があります。問題は、他の言語でやったので、これを perl にする方法がわからないことです。

my $q= new CGI;

print $q->header;
print $q-> start_html(
   -title   => "Main",
   -style  => {-src =>'/media/css/ui-lightness/jquery-ui-1.10.3.custom.css" rel="stylesheet' },
   -script => [ 
        { -src=>'/media/js/jquery-1.9.1.js'},
        { -src=>'/media/js/jquery-ui-1.10.3.custom.js' }
   ]
);

print $q->start_form;
print $q->table({},
        $q->Tr(
            $q->th('Name', 'Surname', 'Age')
        ));   


# Connect to the database

## mysql user database name
my $db = "student";
## mysql database user name
my $user = "root";

## mysql database password
my $pass = "";

## user hostname : This should be "localhost" but it can be diffrent too
my $host="127.0.0.1";

## SQL query
my $query = "select Name,Surname,Age from student";

my $dbh = DBI->connect("DBI:mysql:$db:$host", $user, $pass);
my $sqlQuery  = $dbh->prepare($query)
or die "Can't prepare $query: $dbh->errstr\n";

my $rv = $sqlQuery->execute
or die "can't execute the query: $sqlQuery->errstr";

while ( my ($Name, $Surname, $Age) = $sqlQuery->fetchrow_array() ) {
     print STDOUT "$Name  $Surname $Age";
        $q->button( print $q->button(
        -id       => 'leletebtn',
        -name     => 'submit_form',
        -value    => 'Delete',
        )          
    )
}

print $q->end_form;  
print $q->end_html;
4

1 に答える 1

0

そこにはたくさんのチュートリアルがあります。DBI を使用する必要があります。

http://oreilly.com/catalog/perldbi/chapter/ch04.html

http://www.perl.com/pub/199​​9/10/DBI.html

my $lastname = 'test';

my $dbh = DBI->connect('DBI:Oracle:people')
                or die "Couldn't connect to database: " . DBI->errstr;#connect
my $sth = $dbh->prepare('SELECT id,uid FROM people WHERE lastname = ?')
                or die "Couldn't prepare statement: " . $dbh->errstr;#prepare
$sth->execute($lastname); # Execute the query
while ( my $ref = $sth->fetchrow_hashref() ) {
   print "$$ref{'id'} \t $$ref{'uid'}\n";
}
于 2013-07-25T11:31:46.677 に答える