使用Perl语言去存取mSQL和MySQL数据库的内容

数据库技术    2009-10-21 11:18  

  1) 知识准备:

  为了使用Perl语言去存取mSQL和MySQL数据库的内容,必须安装一些API模块,以下列出一些必须安装的模块名称说明和其下载网址:i) 常规安装必须的模块:DBI-1.13 Perl语言的数据库通用接口Data-ShowTable-3.3 Perl5的一个模块,定义了一系列的子例程,用来将数据输出显示为美观的四种格式:简单表格、盒包装表格、列表样式和HTML格式。

  Msql-Mysql-modules-1.2209 包含了两个数据库驱动:DBD::mSQL和DBD::mysql,也就是mSQL和MySQL对Perl语言数据库通用接口的驱动程序,具体地说是实现对mSQL和MySQL数据库存取的DBD(数据库驱动程序)http://www.mysql.com/downloads/api-dbi.html ii) 为了在使用Perl语言的数据库通用接口的时候可以使用Perl语言的数据库通用接口自带的DBD::Proxy驱动和DBD::ProxyServer模块,必须要安装以下的模块:Net-Daemon-0.31 是一个为轻松实现便携式服务器应用程序而提供的一个抽象的基本子类,它提供了实现一个后台守护程序(Daemon) 通常任务的方法:启动、登录、连接客户端、认证、为安全设置环境变量和进入工作状态。

  Storable-0.6.11 使得数据存储更加连续和稳定。你可以用递归的办法向磁盘存储任何的数据结构,同时也可以从存储文件中取出数据并且在内存中重建同样的结构。PlRPC-0.2012 RPC::PlServer——为实现PlRPC而提供的Perl语言扩展。它是一个用于服务器端的包,它和RPC::client一起通过共享包RPC::Comm的方式来通讯。PlRPC通过定义一系列可以被客户端执行的方法(methods) 来用Perl语言实现RPC(远程过程调用) . http://www.perl.com/CPAN-local/modules/

  2) 安装过程:

  下载以上提及的模块安装文件(文件名均为模块名后接。tar.gz) ,最好保存在目录:/usr/local/src下,并解压:tar zxvf *****.tar.gz (*****表示模块名) .这将产生各模块的安装文件目录。

  i) 按照以下列出的从左到右的先后顺序安装,使得系统支持使用DBD::Proxy驱动和DBD::ProxyServer模块。Net-Daemon-0.31——Storable-0.6.11——PlRPC-0.2012使用标准的CPAN模块安装过程:perl Makefile.PL——make——make test——make install

  ii) 常规安装部份:按照以下列出的从左到右的先后顺序安装:DBI-1.13——Data-ShowTable-3.3——Msql-Mysql-modules-1.2209对DBI-1.13模块和Msql-Mysql-modules-1.2209模块的安装使用标准的CPAN模块安装过程:perl Makefile.PL——make——make test——make install对Data-ShowTable-3.3模块的安装要特殊处理一下:a) 此模块带的测试套件有错误,顾省略make test这一过程。即安装过程为:perl Makefile.PL——make——make install b) 在完成perl Makefile.PL这一步后,编辑ShowTable.pm文件,找到"=head1" 相关段,增加一行:" =head1 SYNOPSIS " ,保存退出。接着完成make和make file过程。

  3) 测试:使用MySQL数据库(使用mSQL也可以)建立一个数据库:abacus,写一个简单的perl程序:perlmysql.cgi,从一个数据库abacus中读出所有的表名并且显示。

  #!/usr/bin/perl

  use DBI;print "Content-type: text/htmlnn";print "n";$driver="mysql";$dbh=DBI->connect("DBI:mysql:abacus:mysql.szabacus.com","root","abcde")||die "can not connect database";$sth=$dbh->prepare("show tables")||die "occur an error when query database";$sth->execute();$numRows=$sth->rows;while(@row=$sth->fetchrow_array){ print "Table: $row[0]n";} print "query lines=$numRowsn";$sth->finish();$dbh->disconnect();exit;

  将此程序存入系统的CGI目录中,同时执行:chmod 755 perlmysql.cgi ,然后在命令行下执行:perl perlmysql.cgi ,在正常安装的情况下将可以看到数据库abacus中的所有表名显示出来。也可以在IE里使用url看结果。

在线留言

我要留言