【发布时间】:2022-01-19 07:12:37
【问题描述】:
我在 PostgreSQL 表上使用全文搜索和用户生成的输入,在本例中为“a”。
my $dbh = DBI->connect("...", { RaiseError => 0, AutoCommit => 1 });
my $sth = $dbh->prepare("SELECT name from mytable WHERE tsv @@ plainto_tsquery('the a')");
my $rv = $sth->execute();
如果用户输入只包含停用词,我会收到关于 STDERR 的通知,并且查询不会返回任何结果,但不会产生错误。
我想在 Perl 中捕获该 NOTICE 以提醒用户重新搜索,但我似乎无法访问它。
将 RaiseError 设置为 1 不会改变任何内容,并且 $dbh->pg_notifies 返回 undef。
有什么想法吗?
【问题讨论】:
标签: postgresql perl error-handling