当前位置:Linux教程 - Linux文化 - Linux环境下Perl语言对数据库的操纵

Linux环境下Perl语言对数据库的操纵


实例:同一主机下的运行
主机配置:PIII450 128M 15GB
操作系统:Red Hat Linux 6.1
数据库:MySQL-3.22.29
建议使用RPM方式安装,至少要安装下面三个包:
MySQL-3.22.29-1.i386.rpm
MySQL-client-3.22.29-1.i386.rpm
MySQL-devel-3.22.29-1.i386.rpm
WWW服务器:Apache 1.3.6 for Linux
Perl 解释器:version 5.005_03 built for i386-linux
DBI: 版本为:1.13
Data-ShowTable: 版本为:3.3
DBD: Msql-Mysql-modules-1.2018

本人成功地在上述环境下实现了对MySQL数据库的访问。与Windows环境下的数据库不同,它不需要建立外部数据源.

下面是一个应用的简单例子:

为了统计用户访问我们的网站的次数,我们建立了一个数据库, 在其中建一个表,表名为:usedata, 共有三列:userno,userpass,lognum,分别代表用户名,密码,登录次数.

假定我们使用test数据库,在该库中创建表usedata, 我们既可以编一个PERL程序实现,也可以在命令行方式下实现:

#mysql test
>CREATE TABLE usedata(userno CHAR(8) NOT NULL, usepass CHAR(8) NOT NULL, lognum INT);
>exit
共有两个htm文件,两个pl文件.
regist.htm



注册


用户在线注册




用户名
密码





login.htm



登录


用户在线登录




用户名
密码





regist.pl #!/usr/bin/perl
# regist.pl

read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$value =~ s///g;
$value=~ s/]|\n)*>//g;
$value=~ s/>/>/g;
$value=~ s/fetchrow_arrayref))
{
$dbh->disconnect();
printdisconnect();
print