加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl: 数据库编程

发布时间:2020-12-15 23:43:55 所属栏目:大数据 来源:网络整理
导读:DBI: 连接所有数据库的 API 。 DBD: 是 DBI 针对不同数据库的驱动。 DBD::mysql DBD::Pg DBD::SQLite 如果没有 , 使用 cpan 安装即可。 ###################################################################### DBI 接口: 习惯用法: $dbh 数据库句柄 $st

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,$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“@rown”;
? ? “@rown”;
}


#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,/;
? ? $sth->execute($foo,$baz);
? ? $bar,$baz);
}


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


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


具体API参考文档。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读