perl: 数据库编程

本文详细介绍了DBI作为连接所有数据库的API,及其针对不同数据库的驱动DBD,如DBD::mysql、DBD::Pg、DBD::SQLite等。通过示例展示了如何使用DBI接口进行数据库连接、查询、更新、提交和断开操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DBI:连接所有数据库的API


DBD:DBI针对不同数据库的驱动。
DBD::mysql
DBD::Pg
DBD::SQLite


如果没有,使用cpan安装即可。
######################################################################
DBI接口:


习惯用法:
$dbh数据库句柄
$sth语句句柄
$drh驱动句柄
$rc布尔类型返回码
$rv整数类型返回值
@ary从数据库返回的行记录的列表
$rows处理的行数
$fh文件句柄
\%attr哈希类型的属性


@driver_names= DBI->available_drivers;

%dirvers= DBI->installed_drivers;
@data_sources= DBI->data_sources($driver_name, \%attr);
$dbh= DBI->connect($data_source, $username, $auth, \%attr);


###########################################################
use   DBI;


#connect建立连接返回句柄
$dsn= “DBI:mysql:database=$database;host=$hostname;port=$port”;
$dbh= DBI->connect($dsn, $username, $password, {RaiseError => 1,AutoCommit => 0});

#for   select
$sth= $dbh->prepare(“SELECT foo,bar FROM user WHERE baz=?”);
$sth->execute($baz );
while( @row = $sth->fetchrow_array) {
    print“@row\n”;
    “@row\n”;
}


#for  non-select(create,dropalter,insert,delete)
$sth= $dbh->prepare(“INSERT INTO table(foo,bar,baz) VALUES(?,?,?)”);
while(<CSV>) {
    chomp;
    my($foo, $bar, $baz) = split /,/;
    ($foo, $bar, $baz) = split /,/;
    $sth->execute($foo,$bar, $baz);
    $bar, $baz);
}


$rows_affected= $dbh->do(“UPDATE your_table SET foo = foo + 1”);


$dbh->commit;
$dbh->rollback;
$sth->finish;
$dbh->disconnect;


具体API参考文档。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值