Perl DBI:如何查看带有绑定值的失败查询?
发布时间:2020-12-15 23:36:10 所属栏目:大数据 来源:网络整理
导读:这是 DBI手册中的标准插入示例: my $query = q{ INSERT INTO sales (product_code,qty,price) VALUES (?,?,?) }; my $sth = $dbh-prepare($query) or die $dbh-errstr; while () { chomp; my ($product_code,$qty,$price) = split /,/; $sth-execute($produ
这是
DBI手册中的标准插入示例:
my $query = q{ INSERT INTO sales (product_code,qty,price) VALUES (?,?,?) }; my $sth = $dbh->prepare($query) or die $dbh->errstr; while (<>) { chomp; my ($product_code,$qty,$price) = split /,/; $sth->execute($product_code,$price) or die ($query . " " . $dbh->errstr); } $dbh->commit or die $dbh->errstr; 我修改了一下,所以我可以看到哪个查询失败(die($query.“”.$dbh-> errstr)).我仍然希望看到带有绑定值的查询(因为它已被执行).怎么弄? 编辑 顺便说一下,我发现了一种查看绑定值查询的尴尬方法:你必须在查询中出现语法错误.例如,如果我更改上面的查询: my $query = q{ xINSERT INTO sales (product_code,?) }; 我按照自己的意愿得到了它:
有时真的有帮助.至少它对我有用. 解决方法
您可以使用DBI的
ParamValues来获取参数值,但是您不太可能在DBD中找到任何方法来获取SQL中的实际参数,因为它们主要在解析SQL后发送到数据库.您可以查看
DBIx::Log4perl以了解如何在错误处理程序中使用ParamValues.您可能还会发现DBIx :: Log4perl的某些部分很有用.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |