当前位置:  开发笔记 > 编程语言 > 正文

我如何知道Perl DBI查询返回多少行?

如何解决《我如何知道PerlDBI查询返回多少行?》经验,为你挑选了2个好方法。

我试图基本上用Perl搜索数据库来判断是否有一个具有特定ID的项目.此搜索不返回任何行,但也可以返回一行.

我有以下代码:

my $th = $dbh->prepare(qq{SELECT bi_exim_id FROM bounce_info WHERE bi_exim_id = '$exid'});
$th->execute();
if ($th->fetch()->[0] != $exid) {
        ...

基本上,这会尝试查看是否返回了ID,如果不是,则继续执行脚本.但是它会在这个$th->fetch()->[0]东西上抛出Null数组引用错误.我怎么才能只是检查它是否返回行或现在?



1> brian d foy..:

该DBD :: mysql的驱动程序有一个的rows(),可以返回结果的计数方法:

$sth = $dbh->prepare( ... );
$sth->execute;
$rows = $sth->rows;

这是特定于数据库驱动程序的,因此它可能在其他驱动程序中不起作用,或者在其他驱动程序中可能有所不同.


我们在这里谈论一个特定的DBD.:)
啊,我现在看到它......隐藏在节点的标签中......如果这是问题的重要部分,它应该在标题或文本中:-)

2> Paul Tomblin..:
my $th = $dbh->prepare(qq{SELECT bi_exim_id FROM bounce_info WHERE bi_exim_id = '$exid'});
$th->execute();
my $found = 0;
while ($th->fetch()) 
{
   $found = 1;
}

如果该行不存在,您的查询将不会返回任何内容,因此您无法取消引用该提取.

更新:你可能想重写那个

my $found = $th->fetch();

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有