`

Perl实现文件及数据库访问

    博客分类:
  • Perl
阅读更多
写了一个perl脚本,使用了循环、控制台输出、访问文件以及访问数据库等特性,实现从文本文件中,读入多条已格式化的记录,按规定的分隔符解析,并插入到mysql数据库中。

一、预备条件:
0、安装perl解释器(废话);
1、安装有数据库(本人使用的是mysql);
2、perl已安装DBI模块。(注意:使用访问数据库功能时,须先安装相应的模块,即DBI模块,安装方法如链接所示:http://www.cnblogs.com/itech/archive/2009/08/10/1542832.html

二、准备工作:
1、新建文本文件 test.log,perl将会从此文件读取数据,并插入数据库。其内容为:
引用
20120507|192.168.10.1|50
20131222|172.18.33.55|24
20130706|202.116.60.5|61


2、在mysql中新建数据表,从文本文件读来数据将会插入此表。脚本内容为:
create database testdb;
use testdb;

create table test(createtime datetime not null default '19000101', ipaddr varchar(20) not null default '', counter int not null default 0);


三、perl脚本代码:

#!/usr/bin/perl

use DBI;
#use DBD::mysql;

my $maillog = "./test.log";

my ($dataSoureName) = "DBI:mysql:test:localhost";		#data source name
my ($userName) = "root";		# user name
my ($password) = "";		# password
my ($dbh, $sth);		#database and statement handles
my $dbh = DBI->connect($dataSoureName, $userName, $password, {'RaiseError'=>1});

open(FF, $maillog) || die "ERROR:$!";
while(<FF>) {
	my($createtime,$ipaddr,$counter) = (split /\|/, $_);
	
	&insert_test($createtime, $ipaddr, $counter);
}
close(FF);
$dbh->commit();
$dbh->disconnect();

sub insert_test(){
	my ($createtime,$ipaddr,$counter) = @_;
	
	#my $sql = $createtime." ".$ipaddr." ".$counter;
	#print $sql
	my $sql = "insert into test(createtime, ipaddr, counter)  values(?, ?, ?)";
	eval {
		$sth = $dbh->prepare($sql);
		
		$sth->bind_param(1, $createtime);
		$sth->bind_param(2, $ipaddr);
		$sth->bind_param(3, $counter);
		
		$sth->execute();
		$dbh->commit();
	};
	
	if ($@) {
		print "errorcode $@\n";
	}
}


四、附件介绍:
0、test.pl是perl脚本,test.log是整理好准备要插入的数据文件,test.sql是在mysql中建表的脚本。
1、先运行test.sql,在mysql中建表。
2、把test.log与test.pl放在同一个目录下。
3、运行test.pl可插入数据。
分享到:
评论

相关推荐

    Perl 实例精解(第三版).pdf

    第14章 tie函数,DBM文件和数据库挂钩 14.1 连接变量与类 14.1.1 tie函数 14.1.2 预定义方法 14.1.3 连接标量 14.1.4 连接数组 14.1.5 连接散列 14.2 DBM文件 14.2.1 创建并赋给DBM文件数据 ...

    PERL编程24学时教程.pdf

    15.4 随机访问文件 175 15.4.1 打开文件进行读写操作 175 15.4.2 在读写文件中移动 176 15.5 锁定文件 176 15.5.1 锁定UNIX和NT下的文件 178 15.5.2 在加锁情况下进行读写操作 179 15.5.3 Windows 95和Windows 98下...

    PERL编程24学时教程

    15.4 随机访问文件 175 15.4.1 打开文件进行读写操作 175 15.4.2 在读写文件中移动 176 15.5 锁定文件 176 15.5.1 锁定UNIX和NT下的文件 178 15.5.2 在加锁情况下进行读写操作 179 15.5.3 Windows 95和Windows 98下...

    perl语言脚本文档说明

    15.3 将文本文件用作数据库 173 15.4 随机访问文件 175 15.4.1 打开文件进行读写操作 175 15.4.2 在读写文件中移动 176 15.5 锁定文件 176 15.5.1 锁定UNIX和NT下的文件 178 15.5.2 在加锁情况下进行读写操作 ...

    perl编程24学时教程.rar

    本书循序渐进、深入浅出地介绍了Perl的主要特性及用Perl进行CGI编程的知识。全书包括24个学时内容和一个附录,共分四部分。第一部分主要讲述Perl的基本概念,第二部分重点介绍Perl的一些高级特性,第三部分介绍如何...

    Perl编程24学时教程(PDF格式,共24章)

    本书循序渐进、深入浅出地介绍了Perl的主要特性及用Perl进行CGI编程的知识。全书包括24个学时内容和一个附录,共分四部分。第一部分主要讲述Perl的基本概念,第二部分重点介绍Perl的一些高级特性,第三部分介绍如何...

    Shell、Perl、Python、PHP访问 MySQL 数据库代码实例

    下午写了一个简单的 bash 脚本,用来测试程序,输入一个测试用例文件,输出没有通过测试的用例和结果,然后把结果保存到数据库里。如何在 bash 脚本里直接访问数据库呢?既然在 shell 里可以直接用 mysql 命令操作...

    File-RsyncP-0.74.tar

    RsyncP是Rsync客户端的perl实现。它是与Rsync 2.x兼容(协议版本高达28)。它可以发送 或通过在远程计算机上运行rsync来接收文件,或f 正在连接到远程计算机上的rsyncd deamon。 文件::RsyncP有什么用途?主要...

    24日学好Perl语言

    15.4 随机访问文件 175 15.4.1 打开文件进行读写操作 175 15.4.2 在读写文件中移动 176 15.5 锁定文件 176 15.5.1 锁定UNIX和NT下的文件 178 15.5.2 在加锁情况下进行读写操作 179 15.5.3 Windows 95和Windows 98下...

    perl学习文档

    15.4 随机访问文件 175 15.4.1 打开文件进行读写操作 175 15.4.2 在读写文件中移动 176 15.5 锁定文件 176 15.5.1 锁定UNIX和NT下的文件 178 15.5.2 在加锁情况下进行读写操作 179 15.5.3 Windows 95和Windows 98下...

    MYSQL网络数据库PDF学习资源

    它具有功能强、使用简便、管理方便、运行速度快、安全可靠性强等优点,用户可利用许多语言编写访问MySQL 数据库的程序, 另外,MySQL在UNIX等操作系统上是免费的,在Windows操作系统上,可免费使用其客户机程序和...

    网管教程 从入门到精通软件篇.txt

    IDX:Microsoft FoxPro相关数据库索引文件;Symantec Q&A相关数据库索引文件;Microsoft Outlook Express文件 IMG:GEM映像 INF:信息文件 INI:初始化文件;Mwave DSP Synth的“nwsynth.ini” GMS安装;Cravis ...

    mysql网络数据库指南(中文版) part1

    它具有功能强、使用简便、管理方便、运行速度快、安全可靠性强等优点,用户可利用许多语言编写访问MySQL 数据库的程序,另外,MySQL在UNIX等操作系统上是免费的,在Windows操作系统上,可免费使用其客户机程序和客户...

    Linux环境数据库管理员指南

    9.26.2 访问数据库 278 9.26.3 删除数据库 279 9.26.4 备份和恢复 279 9.26.5 大型数据库 280 9.27 使用 PostgreSQL 的 KVM 开关 280 9.28 故障排除—postmaster 启动故障 281 9.28.1 客户机连接问题 282 9.28.2 ...

    APMServ|APMServ v5.2.6下载

     3、MySQL数据库文件存放目录:MySQL5.1\data或MySQL4.0\data  4、网站根目录[HTML,PHP]www\htdocs [ASP]www\asp [CGI,Perl]www\cgi-bin  5、访问本机请用http://127.0.0.1/或https://127.0.0.1/ (如果开启SSL) ...

    综合学生成绩查询系统v2.05源码

    两个文件中所有以“#”开头的行都是Perl的注释信息 三、目录及文件: (1)、目录Archive:Perl的Tar模块,使用此模块Perl可以输出一个Tar包。 (2)、目录bgsound:背景声音文件。 (3)、目录Data@Info:数据库文件...

Global site tag (gtag.js) - Google Analytics