perl 连接数据库进行操作 端口修改

perl数据库连接工具 DIB

 

环境搭建

DBI(Database Interface)是perl连接数据库的接口。其是perl连接数据库的最优秀方法,他支持包括Orcal,Sybase,mysql,db2等绝大多数的数据库

perl 环境 : yum install perl-Devel

DBI连接mysql : yum -y install perl-DBD-MySQL

或者单独装DBI、Data-ShowTable、DBD-mysql 三个组件

 

连接方法

#!/usr/bin/perl -W
use utf8;
use strict;
use DBI;

my $host = "";         # 主机地址
my $driver = "mysql";           # 接口类型 默认为 localhost
my $port = "";
my $database = "";        # 数据库
my $dsn = "DBI:$driver:database=$database:$host:$port" or die "can't connect to database ". $DBI::errstr;
my $userid = "";            # 数据库用户名
my $password = "";        # 数据库密码
my $dbh = DBI->connect($dsn, $userid, $password );
my $sth = $dbh->prepare("SELECT * FROM Websites");   # 预处理 SQL  语句
$sth->execute();    # 执行 SQL 操作
$sth->finish();
$dbh->commit or die $DBI::errstr;

插入

my $name = "Twitter";
my $url = "https://twitter.com/";
my $alexa = 10;
my $conutry = "USA";
my $sth = $dbh->prepare("INSERT INTO Websites
                       (name, url, alexa, conutry )
                        values
                       (?,?,?,?)");
$sth->execute($name,$url,$alexa, $conutry) 
          or die $DBI::errstr;
$sth->finish();
$dbh->commit or die $DBI::errstr;

ROLLBACK 操作

如果在 SQL 执行过程中发生错误,可以回滚数据,不做任何改变:

 
  1. $dbh->rollback or die $dbh->errstr;

事务

和其它的语言一样, perl DBI对数据库的操作也支持事务处理, 它的实现方式有两个:

1、 在连接数据库的时候就开始一个事务

 
  1. $dbh = DBI->connect($dsn, $userid, $password, {AutoCommit => 0}) or die $DBI::errstr;

以上代码在连接的时候设置了AutoCommit为false, 也就是说当你对数据库进行更新操作的时候, 它不会自动地把那些更新直接写到数据库里, 而是要程序通过 $dbh->commit 来使数据真正地写到数据库里, 或 $dbh->rollback 来回滚刚才的操作。

2、 通过$dbh->begin_work()语句来开始一个事务

这种方式就不需要在连接数据库的时候设置 AutoCommit = 0 。

可以一次数据库连接进行多次事务操作, 不用每一次事务的开始都去连接一次数据库。

 
  1. $rc = $dbh->begin_work or die $dbh->errstr;
  2.  
  3. #####################
  4. ##这里执行一些 SQL 操作
  5. #####################
  6.  
  7. $dbh->commit; # 成功后操作
  8. -----------------------------
  9. $dbh->rollback; # 失败后回滚

断开数据库连接

如果我们需要断开数据库连接,可以使用 disconnect API:

 

$rc = $dbh->disconnect or warn $dbh->errstr;

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值