写了一个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脚本能够访问的位置,如"C:\temp\try.dbm"。 接下来,我们将编写Perl脚本来连接和操作Access数据库。以下是一个基本示例: ```perl use DBI; use strict; # DSN(数据源名称)定义,指定...
它为数据库访问提供了一致性的API,极大地简化了跨数据库平台的编程工作。 - **SQL执行与查询**: 通过DBI模块,Perl脚本能够执行SQL语句来查询、插入、更新或删除数据库中的数据。此外,还可以利用预编译语句来提高...
1. **Spreadsheet::ParseXLSX**:这是Perl中用于读取Excel 2007及以上版本(.xlsx文件)的库。它不依赖Microsoft Office或任何其他外部程序,可以解析工作表、单元格、公式等。要使用这个库,首先需要在你的Perl环境...
Web.sql是SYBASE公司推出的一种解决方案,它充分利用SYBASE数据库的高性能,提供了一种多平台、紧密集成服务器的开发工具,以高效、快速地实现在Internet上的动态数据库访问。 Web.sql提供了两种编程接口:CGI...
DBI是Perl中用于数据库操作的核心模块,它定义了一组标准的数据库访问方法和特性,使得Perl程序员可以轻松地与各种数据库系统进行通信,而无需关心具体的数据库API细节。DBI的安装通常涉及以下几个步骤: 1. **下载...
在Windows NT操作系统环境下,使用Perl语言来访问Oracle数据库是一项常见的任务。这个压缩包"NT下Perl访问Oracle所需模块.rar"包含了一系列必要的Perl模块,这些模块是实现Perl与Oracle交互的基础。下面将详细介绍...
### Perl脚本了解及学习 #### 一、Perl基础概览 **Perl**是一种功能强大的通用编程语言,因其灵活性和适应性而在多个行业中得到广泛应用。无论是处理文本、网络编程还是系统管理,Perl都能轻松胜任。它特别适用于...
Perl还提供了文件操作功能,如打开、读取、写入和关闭文件,`open`函数用于打开文件,`<FILEHANDLE>`用于读取,`print FILEHANDLE`用于写入,而`close`用于关闭文件。 数组和哈希是Perl中处理多值的常用数据结构。...
ASP(Active Server Pages)技术是微软推出的一种用于创建动态网页和访问WEB数据库的工具,尤其适合处理复杂的交互式Web应用程序。...总的来说,ASP以其易用性和高性能,成为了WEB数据库访问的主流技术。
"PHP 实现 WEB 数据库操作" 以下是从给定的文件信息中生成的相关知识点: PHP 简介 PHP 是一种服务器端脚本语言,主要用来实现动态网页的开发。 PHP 的全名是一个递归的缩写名称,"PHP:Hypertext Preprocessor"...
1. DBI(Database Interface):Perl的DBI模块提供了一种统一的接口来访问多种数据库,简化了数据库操作。 2. 数据库连接:通过DBD(DBI Driver)模块,Perl可以连接MySQL、Oracle、PostgreSQL等各种数据库系统。 ...
1. 数据库接口:Perl提供DBI(Database Interface)模块,这是一个标准的数据库访问接口,允许程序员通过统一的方式连接和操作不同类型的数据库,包括Oracle。DBD::Oracle是DBI的一个驱动,专门用于Oracle数据库,...
DBD(Database Driver for Perl)是Perl数据库接口的一个集合,它提供了一种标准的方式来访问各种不同的数据库系统。DBD-ODBC(Open Database Connectivity)是DBD的一部分,允许Perl通过ODBC(开放数据库连接)接口...
书中通过各种实例,如文件系统交互、HTML处理、数据库访问等,展示了Perl的强大功能。 #### 重要知识点解析 ##### Lisp风格的Perl - **函数式编程**: 本书强调Perl可以作为一种函数式编程语言来使用,类似于Lisp...
DBD 是 Perl 的数据库接口,它是 DBI (Database Independent Interface) 的一部分,提供了一个统一的方式来访问各种不同的数据库系统。 DBD::Oracle 是 DBD 家族中的一个成员,专为 Oracle 数据库设计。它实现了 ...
8. 数据库接口:DBI(Database Interface)模块提供了统一的数据库访问接口,支持多种数据库系统如MySQL、SQLite等。 通过阅读《Perl入门及高级编程》PDF文档,你将全面掌握Perl的基础语法和高级特性,无论是简单的...
1. **获取Perl RPM包**:在有网络的环境中,你可以通过`yum download`命令或访问官方或第三方RPM存储库下载Perl的RPM包。确保下载与你的CentOS版本兼容的版本。 2. **传输RPM包**:将下载的Perl RPM包通过USB驱动器...
7. **模块化开发**:mod_perl支持使用Perl模块来扩展其功能,如Apache::DBI用于数据库访问,Apache::Cookie用于处理cookies等,这些模块大大简化了Web应用程序的开发。 8. **Apache配置**:mod_perl允许用Perl编写...