2013-07-24 24 views
1

我正在做一个连接到数据库'人'的代码,从那里获取数据,我需要做的是用一个按钮来获取id点击此按钮的人员并删除或更新。问题是我不知道如何使这个我Perl,因为在其他语言我做到了。如何添加一个按钮,从数据库中获取数据的id并执行一个动作

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; 

回答

0

这里有很多教程。你必须使用DBI:

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

http://www.perl.com/pub/1999/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"; 
} 
+0

它是连接和第一代码的作品,但delete.pl没有。如果你找到错误的地方,请尝试编辑我的代码。我是新的perl – Armida

+0

“你必须使用DBI” - 这当然是一个非常好的主意,但我不认为你绝对*有:*: –

+0

你绝对应该使用DBI,除非你知道你在做什么? :-) – user1126070

相关问题