connect("DBI:Pg:host=192.168.12.23;port-6ren">
gpt4 book ai didi

perl - 为什么我得到 0E0 的 DBI "execute"方法的返回值?

转载 作者:行者123 更新时间:2023-12-04 17:07:57 25 4
gpt4 key购买 nike

我编写了一个示例 Perl 程序来从数据库表中删除数据。

这是我写的代码

use DBI;

my $dbh = DBI->connect("DBI:Pg:host=192.168.12.23;port=5432;", "adhi");
if ( $dbh ) {

print "Connected successfully\n";

my $exe = $dbh->prepare("delete from perl_test.test");
my $res = $exe->execute();
if ( $res ) {
print "deleted the table successfully of rows: $res\n";
}
}

如果我执行了上述操作,它应该打印成功消息,然后删除行数。

如果表是空的,它正在打印 0E0而不是 0 .
我不知道它是如何返回这样的值的?

有人可以解释一下它是如何工作的吗?

最佳答案

这样做是为了测试操作是否成功。原因是'0E0' (作为字符串)是一个真值,但 0在 Perl 中是一个假值。所以:

  • 您可以在 if 中测试返回值判断操作是否成功(true 表示成功),
  • 但您也可以使用返回值作为数字来了解已删除行的确切数量,因为 0E0 在用作数字时计算为 0。

  • 如果你只需要删除的行数,你可以使用 $res + 0$res * 1 .但只有在您测试过操作成功之后。

    关于perl - 为什么我得到 0E0 的 DBI "execute"方法的返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38636009/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com