免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1363 | 回复: 0
打印 上一主题 下一主题

Perl使用技巧16:简单获取Mysql数据库数据 [复制链接]

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-12-18 06:20:00每日论坛发贴之星
日期:2015-12-18 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-12-15 13:30 |只看该作者 |倒序浏览
需要用到2个模块;

use DBI;
use DBD::mysql;

#持久化,如果不加这个参数,并发时候会出现mysql链接失败
%dbattr=(
AutoInactiveDestroy=>1
);

$dbh = DBI->connect("DBI:mysql:database=test;hostname=1.1.1.1;port=3306","user","password",\%dbattr) || croak "db err";
$dbh->do("SET character_set_client='utf8'";
$dbh->do("SET character_set_connection='utf8'";
$dbh->do("SET character_set_results='utf8'";

连接获得句柄。

$title=getone('select title from item limit 1');
say $title;

($title,$img)=getone('select title,img from item limit 1');
say "$title,$img";

获取一行信息。1个字段或多个字段

sub getone {
        my $sql=shift;
        my $sth=$dbh->prepare($sql);
        $sth->execute() || croak "sqlsql";
        my $ref=$sth->fetchrow_arrayref;
        deep_utf8_decode($ref);
        wantarray ? return @$ref : return $ref->[0];
}

@array=getall('select title,img from item limit 10');
foreach $item(@array) {
   ($title,$img)=@$item;
   say "$title,$img";
}

获取多行信息。

sub getall {
        my $sql=shift;
        my $ref=$dbh->selectall_arrayref($sql) || croak "$sql";
        deep_utf8_decode($ref);
        return @$ref;
}

总之数据库的操作方法很多,我只是提炼了2个最常用的getone & getall而已。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP