手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网站运营>建站经验>列表

通过Perl 编程访问DB2数据库

来源:互联网 作者:west263.com 时间:2008-04-16
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

从数据库中检索数据 —— 单个结果

为了将数据库中的值放到 Perl 程式中使用,需要按照下面的步骤执行:

  1. 准备 SELECT 语句。
  2. 执行所准备的语句。
  3. 使用 $sth->bind_col 方法把某列的值(或函数)关联到一个本地 Perl 变量上。
  4. 使用 $sth->fetch 方法将一个值取到本地变量中。

下面的伪码展示了如何从数据库中检索单个值:


清单 12. 从数据库中检索单个值


            $stmt = “SQL SELECT Statement to be executed“;

            $sth = $dbh->prepare($stmt);

            $sth->execute();

            $result = $sth->bind_col(col, \variable [, \%attr ]);

            while ($sth->fetch){

            process result of the fetch;

            }

            

下面这个例子展示了如何为一个聚合函数 max 从 EMPLOYEE 表中检索 salary 的值:


清单 13. 为聚合函数检索值


            #!/usr/local/bin/perl -w

            use DBI;

            use DBD::DB2::Constants;

            $dbh = DBI->connect("dbi:DB2:sample","","") or

            die “Can't connect to sample database: $DBI::errstr";

            $stmt = "SELECT max(salary) from EMPLOYEE";

            $sth = $dbh->prepare($stmt);

            $sth->execute();

            #associate variable with output columns...

            $sth->bind_col(1,\$max_sal);

            while ($sth->fetch) {

            print "The biggest salary is: $max_sal\n";

            }

            

下面是执行这个 Perl 程式后的结果:


清单 14. 聚合结果值


            $perl test_return_value.pl

            The biggest salary is: 52750.00

            

从数据库中检索数据 —— 多个结果

从数据库中返回一个结果集(即多个结果)到 Perl 程式中的技术和前面所采用的技术很类似。在准备并执行返回多个结果的 SQL 语句并将返回值(列)绑定到本地变量上之后,可能需要使用 $sth->fetch 方法来检索这些值。为了展示这个方法是如何工作的,下面让我们从 PT_ADDR_BOOK 表中检索出 phone 和 name 列的内容。清单 15 给出了使用一个循环来使用 $sth_fetch 方法的用法:


清单 15. 从数据库中检索多个值


            $stmt = "SELECT name, phone from PT_ADDR_BOOK";

            $sth = $dbh->prepare($stmt);

            $sth->execute();

            #associate variables with output columns...

            $sth->bind_col(1,\$name);

            $sth->bind_col(2,\$phone);

            print "NAME                          PHONE      \n";

            print "-------------------------     -----------\n";

            while ($sth->fetch) {

            print $name ;

            print $phone; print "\n";              }

            print "DONE \n";

            $sth->finish();

            

执行这段代码的结果如下:


清单 16. 从数据库中检索多个值


            C:\Dev_POT\PERL\Labs>perl multi.pl

            NAME                          PHONE

            -------------------------     -----------

            JOHN SMITH               9145556677

            STEVE BROWN          7184358769

            DONE

            

也能够使用 $sth->fetchrow 方法从结果集中检索数据。$sth ->fetch 方法会将每个值作为单独一项返回,而 $sth ->fetchrow() 方法则将一行作为一个数组返回,每列的值都是该数组中的一个元素。

能够使用

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!